Как сравнить значения из разных столбцов и разных строк, но из одной таблицы?

ID Name FatherID Birthyear

1   Bart    NULL     1756    
2   Franz   1        1796
3   Josef   2        1835    
4   Zohan   3        1887

Предположим, у меня есть эта таблица, я хотел бы знать, является ли Зохан сыном Барта, что можно получить, если я сравню значения из столбца «FatherID» с идентификатором предыдущих строк, пока не доберусь до Барта. Но как мне сравнить значения в одной таблице, но в разных строках и столбцах?


person Minimax    schedule 10.05.2015    source источник
comment
см. stackoverflow.com/questions/8103861/explain-self-join   -  person Erich Kitzmueller    schedule 11.05.2015


Ответы (1)


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

SELECT s.name AS son_name, f.name AS father_name
FROM   mytable s
JOIN   mytable f ON s.fatherID = f.id
-- possibly add a where clause with conditions on son/father names
person Mureinik    schedule 10.05.2015
comment
Я считаю, что мне нужно будет использовать цикл в PL/SQL, чтобы решить эту проблему, но вы все равно ответили на вопрос. Спасибо! - person Minimax; 11.05.2015