Добрый вечер. Надеюсь на вашу помощь.
Задача стоит следующая, есть запрос:
SQL> with a as ( select 1 id , 0 pid from dual
2 union
3 select 2 id , 1 pid from dual
4 union
5 select 2 id , 0 pid from dual
6 union
7 select 3 id , 2 pid from dual
8 )
9 select a.*
10 from a a
11 connect by prior id = pid
12 start with id = 1
13 /
ID PID
---------- ----------
1 0
2 1
3 2
Dct нормально. Но как вытащить для всех строк корень, чтоб результат был такой:
ROOT ID PID
---------- ----------
1 1 0
1 2 1
1 3 2
Замечу в обратную сторону движение не пройдет потому как связи многие ко многим.
Спасибо.