我有一个带有 id,parent_forum_post_id 的表 forumposts,对于给定的 id=1221,我发现它的孩子数。
with recursive all_posts (id, parentid, root_id) as (
select t1.id,
t1.parent_forum_post_id as parentid,
t1.id as root_id
from forumposts t1
union all
select c1.id,
c1.parent_forum_post_id as parentid,
p.root_id
from forumposts c1
join all_posts p on p.id = c1.parent_forum_post_id
)
select (count(*)-1) as child_count
from all_posts
where root_id=1221
group by root_id;
我现在需要的是完全相反的:对于给定的 id,找出它的级别,这取决于他的父母数量(它是父母,它是父母的父母,直到它在它的 parent_forum_post_id 列中找到 null)。希望这是有道理的。
任何帮助表示赞赏。谢谢。