2015-02-09 25 views
0

我有這樣的問題:(T-SQL)加入兩列,以一個共同的列

TABLE1

| ID | DESCRIPTION | 
| 10 | Apple  | 
| 20 | Banana  | 
| 33 | Pineapple | 
| 47 | Orange  | 

TABLE2

| ID | FRUIT1 | FRUIT2 | 
| 1 | 10 | 47 | 
| 2 | 47 | 10 | 
| 3 | 33 | 20 | 
| 4 | 20 | 33 | 

如果我選擇所有數據在TABLE2,我想輸出水果名稱(TABLE1.DESCRIPTIONTABLE2.FRUIT1TABLE2.FRUIT2而不是ID。

我該怎麼辦?

回答

1

加入table2兩次不同的別名

select t2.id, f1.description, f2.description 
from table2 t2 
left join table1 f1 on f1.id = t2.fruit1 
left join table1 f2 on f2.id = t2.fruit2 
+0

它的工作原理,謝謝! – Andryx93 2015-02-09 14:07:29

0

你可以加入回Table1兩次;你只需要給不同的表別名:

SELECT ID, T1a.Description [Fruit1], T1b.Description [Fruit2] 
FROM Table2 T2 
INNER JOIN Table1 T1a 
    ON T2.Fruit1 = T1a.ID 
INNER JOIN Table1 T1b 
    ON T2.Fruit1 = T1b.ID 
0

使用工會列組合在一起就像這樣:

Select t1.Description 
from Table2 t2 
INNER JOIN Table1 t1 on t1.ID = t2.Fruit1 
UNION 
Select t1.Description 
from Table2 t2 
INNER JOIN Table1 t1 on t1.ID = t2.Fruit2 
相關問題