【发布时间】:2011-05-07 12:43:42
【问题描述】:
我有下表:
id title parent_forum depth
1 'Forum1' 0 0
2 'Forum2' 0 0
3 'Forum3' 0 0
4 'Forum1 subforum' 1 0
5 'Forum2 subForum' 2 0
6 'Forum3 subForum' 3 0
我想做的是对行进行排序,以便所有子论坛都按其父论坛分组。所以,作为一个例子,我希望输出的顺序如下:
id title parent_forum depth
1 'Forum1' 0 0
4 'Forum1 subforum' 1 0
2 'Forum2' 0 0
5 'Forum2 subForum' 2 0
7 'Forum2 subForum2' 2 0
3 'Forum3' 0 0
6 'Forum3 subForum' 3 0
(便于理解的空格) 一定有办法只使用 ORDER BY 和 GROUP BY 吗?如果没有,任何人都可以提供一个很好的查询来帮助我吗?
编辑:或者我的数据库结构很糟糕(我没有展示全部内容,但是你能看到的东西是垃圾吗?)
非常感谢,
詹姆斯
【问题讨论】:
-
忘记包含您在寻找子论坛的订单类型?
-
子论坛的 id 值是否可以小于其父论坛?
-
可能,但不太可能 - 论坛和子论坛将通过表单添加,因此管理员可以创建所有顶级论坛,然后是子论坛,所以是的。感谢您的意见,但 Eric Petroelje 以一种非常简单的方式解决了这个问题(如下):)
标签: mysql group-by sql-order-by