我有以下表结构:
所以每个论坛帖子都有一个父母,父母也有一个父母(根帖子除外)等.
我需要的是得到一个孩子的总数,包括他的孩子的孩子,孙子女的孩子等等.
select count(*) as child_count from forumposts where parent_forum_post_id = $criteria.fid
我甚至不确定这是通过sql可行的,但我是sql的初学者,所以我想也许有人可以给出一些想法.
任何帮助表示赞赏.谢谢.
解决方法
这应该这样做:
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 where t1.parent_forum_post_id is null 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 root_id,count(*) from all_posts order by root_id;
您可以通过修改t1.parent_forum_post_id为null的条件来更改“起始”点.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。