用于计数的MySQL递归查询
我试图为我想要的输出找到一个单一的查询,如果可能的话,我无法理解 表9论坛:用于计数的MySQL递归查询,mysql,recursive-query,Mysql,Recursive Query,我试图为我想要的输出找到一个单一的查询,如果可能的话,我无法理解 表9论坛: forum_id parent_id forum_name 1 0 name1 2 1 name2 7 0 name3 8 7 name4 9 7 name5 173 9 na
forum_id parent_id forum_name
1 0 name1
2 1 name2
7 0 name3
8 7 name4
9 7 name5
173 9 name6
11 0 name7
12 0 name8
233 11 name9
14 11 name10
...
表11.员额:
post_id topic_id forum_id poster_id
25626 61 1 85
2 1 1 85
3 1 1 85
4 1 1 85
5 1 1 85
6 1 1 85
7 200 7 85
8 19 8 85
9 4 9 85
10 2 173 85
196122 3202 233 85
11 2 173 85
12 2 173 85
...
我做了一个快速的小提琴,让你能够测试我走了多远:
Atm我可以得到一个论坛和它的所有家长的帖子向上计数,但只能从该论坛向上(没有其他论坛参与计算)
我希望实现如下sql输出:
forum_id forum_name parent_id lvl countPosts
1 name1 0 2 6
2 name2 1 1 0
7 name3 0 3 5
8 name4 7 2 1
9 name5 7 2 4
173 name6 9 1 3
11 name7 0 2 1
14 name10 11 1 0
233 name9 11 1 1
12 name8 0 1 0
我不知道这是否可行,但我希望稍后使用“lvl”作为“\t”的计数器缩进论坛名称,以便在我的网站上更好地显示论坛是如何分配的
我想稍后在网页上以类似这样的表格形式呈现它(没有项目符号):
如果你有更好的解决办法来解决这个问题,我洗耳恭听这是我第一次遇到这样的问题,所以我想不出别的办法
提前谢谢 简短回答:不,mysql不适合这种“N deep unknown递归”,保持lvl在insert可以帮助你做很多这类工作。答案可能太短了,因为树的深度似乎很浅且有限。它所能达到的最深深度是4层,所以这是不可能的?是的,这是可能的。
forumname Postcount
name1 6
name2 0
name3 5
name4 1
name5 4
name6 3
etc...