Запрос отображения имени для значения вместо идентификатора из одной таблицы - PullRequest
0 голосов
/ 04 ноября 2019

В этой таблице приведен список лиц, некоторые из которых являются родителями другого лица, которое указано в столбцах parentID1 и parentID2 только как значение personID. Я хочу отобразить список лиц в первом столбце, а затем имя их родителя во втором столбце.

table data

Ответы [ 2 ]

0 голосов
/ 04 ноября 2019

Привет, пожалуйста, попробуйте использовать функцию самостоятельного подключения, как показано ниже. Пожалуйста, попробуйте этот способ

select t.name, 

from tableName1 as t1,tableName1 as t2

where t1.personID=t2.parentID1
0 голосов
/ 04 ноября 2019

Вы можете самостоятельно присоединиться к таблице дважды:

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

Это предполагает, что их будет не более1 запись в таблице с personID, который соответствует данному parentID1 или parentID2 (в противном случае запрос не будет выполнен, поскольку встроенный подзапрос вернет более одной записи).

...