2015-10-16 79 views
1

我在繞過簡單查詢時遇到了問題。我有一個Link表是這樣的:查詢鏈接表SQL

+----------+----------+ 
| SourceID | TargetID | 
+----------+----------+ 
| 1  | 2  | 
+----------+----------+ 
| 1  | 3  | 
+----------+----------+ 
| 3  | 4  | 
+----------+----------+ 
| 3  | 5  | 
+----------+----------+ 

Names

+----------+----------+ 
| ID  | Name  | 
+----------+----------+ 
| 1  | Mitch | 
+----------+----------+ 
| 2  | Cheryl | 
+----------+----------+ 
| 3  | Sue  | 
+----------+----------+ 
| 4  | Harry | 
+----------+----------+ 
| 5  | Bob  | 
+----------+----------+ 

一個表,我希望輸出像這樣。像鏈接表一樣結構化,但用名稱代替。

+------------+------------+ 
| SourceName | TargetName | 
+------------+------------+ 
| Mitch  | Cheryl  | 
+------------+------------+ 
| Mitch  | Sue  | 
+------------+------------+ 
| Sue  | Harry  | 
+------------+------------+ 
| Sue  | Bob  | 
+------------+------------+ 

感謝您的幫助。

回答

2

您必須joinnames表使用不同的別名兩次。如果link表的ID不在names中,請將join更改爲left join

Fiddle

select t1.name as sourcename, t3.name as targetname 
from link t2 
join names t1 on t1.id = t2.sourceid 
join names t3 on t3.id = t2.targetid