两列使用相同数据

时间:2018-06-24 00:21:13

标签: sql postgresql

我的SQL查询有问题。

我有两个表-第一个表具有ID和个人ID:

id | id_p | id_p2
1  |   1  |  2
2  |   2  |  3
...

在第二个中,我有“人物ID”及其姓名

id_p | name
1    | John
2    | Alice
3    | Daniel
...

我需要的-我需要获得一个SQL查询,该查询将返回给我人的名字,但是每个id_p在不同的列中。所以我也需要带名称的id_p和带名称的id_p2。这里的例子

id | id_p | id_p2 | name_p | name_p2
1  |   1  |   2   |  John  |  Alice
2  |   2  |   3   |  Alice |  Daniel
...

我该怎么做?非常感谢!

1 个答案:

答案 0 :(得分:1)

您需要SELF JOIN

select t.id, p.name as FirstIdPerson, p2.name as SecondIdPerson
from table t inner join
     person p
     on p.id_p = t.id_p inner join 
     person p2
     on p2.id_p = t.id_p2;