1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
| with aa as (
select 100 as qparent, 1000 as qenfant from dual
union
select 100 as qparent, 1001 as qenfant from dual
union
select 100 as qparent, 1002 as qenfant from dual
union
select 1001 as qparent, 10010 as qenfant from dual
union
select 1001 as qparent, 10011 as qenfant from dual
union
select 1002 as qparent, 10020 as qenfant from dual
)
, ab as (
select 100 as id, 'xx100' as prenom from dual
union
select 1000 as id, 'xx1000' as prenom from dual
union
select 1001 as id, 'xx1001' as prenom from dual
union
select 1002 as id, 'xx1002' as prenom from dual
union
select 10010 as id, 'xx10010' as prenom from dual
union
select 10011 as id, 'xx10011' as prenom from dual
union
select 10020 as id, 'xx10020' as prenom from dual
)
, ac as (
select qparent, qenfant , level
from aa
connect by prior qenfant = qparent
start with qparent = 100
)
select ac.* , ab1.prenom , ab2.prenom from ac , ab ab1, ab ab2 where
ab1.id = ac.qparent
and ab2.id = ac.qenfant |
Partager