Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用于计数的MySQL递归查询_Mysql_Recursive Query - Fatal编程技术网

用于计数的MySQL递归查询

用于计数的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

我试图为我想要的输出找到一个单一的查询,如果可能的话,我无法理解

表9论坛:

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...