Oracle的多表关系树查询与单表没有差别,只需要将父子关系理对即可:
表A是父表,有一个id字段
表B是关系表,s_id表示父节点,d_id表示子节点
表C是子表,有一个id字段
那么从根节点遍历到子节点我们可以写出这样的树查询:
select
a
.
id
,
c.id
from
A a left join B b
on
b.s_id
=
a.id left join
C c
on
b
.
d_id
=
c.id
start
with
a
.
id
=
?
connect
by
prior
c
.
id
=
a.id