用于计数的MySQL递归查询

时间:2015-11-21 20:08:47

标签: mysql recursive-query

我正在尝试为我想要的输出找到一个查询,如果可能的话,我无法理解它。

table_forum:

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

table_posts:

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

我做了一个快速小提琴,让你能够测试我的距离:http://sqlfiddle.com/#!9/90b73f/1

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"的计数器缩进论坛名称,以便更好地在我的网站上查看论坛的分配方式......

我想稍后在网页上以类似这样的形式呈现它(没有子弹字符):

forumname       Postcount
name1           6
    name2       0
name3           5
    name4       1
    name5       4
        name6   3
etc...

如果你有更好的解决方案可以解决问题,我全都耳朵! - 这是第一次遇到这样的问题,所以我无法想到另一种方式。

提前致谢!

0 个答案:

没有答案