У меня есть таблица под названием «тест». Он содержит столбцы родителя и ребенка.Как найти самый высокий родительский уровень или поле в Oracle?
Parent Child
1 101
1 102
1 103
101 121
101 123
103 133
121 80
121 81
Теперь я написал запрос, который приносит мне всех детей/родителей для данного значения «1».
(SELECT parent,child,LEVEL FROM TEST
START WITH child= 1
CONNECT BY PRIOR parent=child)
UNION ALL
(SELECT parent,child,LEVEL FROM TEST
START WITH parent=1
CONNECT BY PRIOR child=parent)
ORDER BY parent
Но я хочу, чтобы все дочерние/родительские элементы в этой иерархии были независимо от любого заданного значения ..i.e. если я даю «80» ...., я должен получить ВЫСШЕЕ РОДИТЕЛЬСКОЕ ЗНАЧЕНИЕ (в данном случае «1»), а затем искать все дочерние элементы этого наивысшего родительского значения ниже.
У меня трудное время, чтобы понять ваши потребности. Вы ищете «всех детей, имеющих общего предка»? –
Что делает '1'« ВЫСОКОЙ РОДИТЕЛЬСКОЙ СТОИМОСТЬЮ »' 80'? Это потому, что на самом деле это самое низкое значение в возрастающем упорядоченном списке? –
@ Caffé Насколько я понимаю, '1' является конечным предком' 80': '80 => 121 => 101 => 1'. Но неясно, что делать после этого. Найти всех потомков '1'? Или только его «прямые» дети? –