我有以下sql表:
id parent_id
1 null
2 1
3 4
4 8
5 1
6 2
7 6
8 null
如何获取某个特定节点的所有子节点? 例如,id = 1:
1 2 5 6 7
id = 8
8 4 2
答案 0 :(得分:0)
我已经在另一个博客中发现了,希望它会帮助其他人:
with RECURSIVE cte(id,parent_id) as (
select
id,
parent_id
from forum
where id = 2
UNION ALL
select
forum.id,
forum.parent_id
from forum
inner join cte on forum.parent_id = cte.id
)
select * from cte