(T-SQL) 将两列连接到一个公共列
(T-SQL) Join two columns to one common column
我有这个问题:
表 1:
| ID | DESCRIPTION |
| 10 | Apple |
| 20 | Banana |
| 33 | Pineapple |
| 47 | Orange |
表 2:
| ID | FRUIT1 | FRUIT2 |
| 1 | 10 | 47 |
| 2 | 47 | 10 |
| 3 | 33 | 20 |
| 4 | 20 | 33 |
如果我 select TABLE2
中的所有数据,我想输出 TABLE2.FRUIT1
和 TABLE2.FRUIT2
的水果名称 (TABLE1.DESCRIPTION
) 和不是身份证。
我该怎么做?
使用不同的别名加入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
您可以加入回 Table1
两次;您只需要提供不同的 table 别名:
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
使用联合将列组合在一起,如下所示:
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
我有这个问题:
表 1:
| ID | DESCRIPTION |
| 10 | Apple |
| 20 | Banana |
| 33 | Pineapple |
| 47 | Orange |
表 2:
| ID | FRUIT1 | FRUIT2 |
| 1 | 10 | 47 |
| 2 | 47 | 10 |
| 3 | 33 | 20 |
| 4 | 20 | 33 |
如果我 select TABLE2
中的所有数据,我想输出 TABLE2.FRUIT1
和 TABLE2.FRUIT2
的水果名称 (TABLE1.DESCRIPTION
) 和不是身份证。
我该怎么做?
使用不同的别名加入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
您可以加入回 Table1
两次;您只需要提供不同的 table 别名:
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
使用联合将列组合在一起,如下所示:
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