该表非常简单,pid表示父级id,而cid表示子级id。表中可能有多个树。所以我的问题是:
知道几个 cid,我们如何获得根祖先
这是一个例子
pid cid
1 2
2 3
3 4
5 6
6 7
7 8
给定cid = 4或cid = 8,我想获取其pid为1 ro 5的根祖先
最后,我使用的是 oracle 10g
最佳答案
select
t1.cid,
connect_by_root(t1.pid) as root
from
your_table t1
left join your_table t2
on t2.cid = t1.pid
where t1.cid in (4, 8)
start with t2.cid is null
connect by t1.pid = prior t1.cid
fiddle
关于database - 如何使用oracle-10g在层次结构查询中获取根祖先?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15595850/