我有两张桌子:
Names
- id (int)
- name (string)
和
Relationships
- id1 (int)
- id2 (int)
我想查询具有特定id1的所有关系的列表,并且我想在结果查询中包含Names中的名称。
因此,结果将有四列
这可能吗?我知道我可以进行内部联接以包含其中一个名称,但我不确定如何包含这两个名称。
对于一个名字,我会做类似的事情:
select Relationships.id1, Relationships.id2, Names.name from Relationships
inner join Names
on Names.id1 = Relationships.id1
答案 0 :(得分:4)
你可以加入一张桌子两次。
SELECT
r.id1,
r.id2,
n1.name,
n2.name
FROM Relationships r
INNER JOIN Names n1 ON r.id1 = n1.id
INNER JOIN Names n2 ON r.id2 = n2.id
答案 1 :(得分:1)
您希望第二次加入Names
。您可以使用表别名来指定哪个连接。
select r.id1, r.id2, n1.name, n2.name
from Relationships r
inner join Names n1
on n1.id = r.id1
inner join Names n2
on n2.id = r.id2