从2列中选择值,这两列都是另一个表行的ID

问题描述 投票:0回答:2

假设我有:

表格1:

ID    Name
1     Ann
2     Mike
3     Stan  
4     Kyle

表2:

Pair ID    Person1ID    Person2ID
1          1            2
2          3            4 

我想选择对,但是使用名称而不是ID,所以这将是输出:

1    Ann    Mike
2    Stan   Kyle

我想象一个简单的:

inner join Table1 on Table1.ID=Table2.Person1ID

不会起作用,因为我想要他们两个,不仅仅是一个。

我对SQL很陌生,所以如果有一个简单的答案,我很抱歉。

sql postgresql
2个回答
4
投票

您必须连接两次并使用别名来区分表

SELECT t2.PairID, A.Name, B.Name
FROM Table2 t2
JOIN Table1 A
  ON t2.Person1ID = A.ID
JOIN Table1 B
  ON t2.Person2ID = B.ID

0
投票

您可以加入以下子查询:

Select p.PairID, p.Name, q.Name
from 
    (Select t2.PairID, t1.Name
     from Table1 t1 inner join Table2 t2
     on t1.ID = t2.Person1ID) p
inner join   
    (Select t2.PairID, t1.Name
     from Table1 t1 inner join Table2 t2
     on t1.ID = t2.Person2ID) q
on p.PairID = q.PairID

demo中查看结果。

© www.soinside.com 2019 - 2024. All rights reserved.