查询链接表SQL

时间:2015-10-16 18:12:46

标签: sql tsql

我无法绕过一个简单的查询。我有一个Link表,如下所示:

+----------+----------+
| 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        |
+------------+------------+

感谢您的帮助。

1 个答案:

答案 0 :(得分:2)

您必须使用不同的别名o join两次names表。如果join表格中的ID不在left join中,请将link更改为names

Tic-Tac-Toe

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