查询链接表SQL

查询链接表SQL,sql,tsql,Sql,Tsql,我对一个简单的问题感到困惑。我有一个链接表,如下所示: +----------+----------+ | SourceID | TargetID | +----------+----------+ | 1 | 2 | +----------+----------+ | 1 | 3 | +----------+----------+ | 3 | 4 | +----------+----------+ | 3

我对一个简单的问题感到困惑。我有一个
链接
表,如下所示:

+----------+----------+
| SourceID | TargetID |
+----------+----------+
| 1        | 2        |
+----------+----------+
| 1        | 3        |
+----------+----------+
| 3        | 4        |
+----------+----------+
| 3        | 5        |
+----------+----------+
以及
名称表

+----------+----------+
| ID       | Name     |
+----------+----------+
| 1        | Mitch    |
+----------+----------+
| 2        | Cheryl   |
+----------+----------+
| 3        | Sue      |
+----------+----------+
| 4        | Harry    |
+----------+----------+
| 5        | Bob      |
+----------+----------+
我希望这样的输出。结构与链接表类似,但使用名称代替

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

谢谢您的帮助。

您必须使用不同的别名加入
名称
表两次。如果
链接
表的id不在
名称中,请将
连接
更改为
左连接

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