在 Adjacency List 表中,给定节点的 id,如何找到它关联的 根节点 ?
笔记:
该表包含多棵树,因此我不能简单地搜索空 parentId。
更多信息:
这是我目前所拥有的,有什么问题或改进吗?
with tree as
(
select
t.*
from table1 t
where t.id = @id
union all
select
t2.*
from tree
join table1 t2 on tree.parentId = t2.id
)
select *
from tree
where parentId is null
最佳答案
我不认为提供的任何解决方案比我自己的更好,所以我最终选择了这个:
with tree as
(
select
t.*
from table1 t
where t.id = @id
union all
select
t2.*
from tree
join table1 t2 on tree.parentId = t2.id
)
select *
from tree
where parentId is null
关于sql - 在邻接表中查找后代的根节点,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11646409/