查询以显示名称而不是来自一个表的ID的值

时间:2019-11-04 09:35:29

标签: sql id

此表中是一个个人列表,其中一些个人是另一个个人的父母,该个人在parentID1parentID2列中仅指定为personID值。我想在第一栏中显示个人列表,然后在第二栏中显示其父母的姓名。

table data

2 个答案:

答案 0 :(得分:0)

您可以两次自行加入表格:

select 
    t.name,
    t1.name parentName1,
    t2.name parentName2
from mytable t
left join mytable t1 on t1.personID = t.parentID1
left join mytable t2 on t2.personID = t.parentID2

或者您可以使用内联相关子查询:

select 
    t.name
    (select t1.name from mytable t1 where t1.personID = t.parentID1) parentName1,
    (select t1.name from mytable t2 where t2.personID = t.parentID2) parentName2
from mytable t

这假设表中的personID与给定的parentID1parentID2匹配的记录中,记录不会多于1条(否则查询将失败,因为内联子查询将返回多个记录)。

答案 1 :(得分:0)

您好,请尝试使用如下所示的自我加入功能。请尝试这种方式

select t.name, 

from tableName1 as t1,tableName1 as t2

where t1.personID=t2.parentID1