【发布时间】:2014-06-04 11:40:20
【问题描述】:
我在 MySQL 中有一个如下的 评论 表:
content created_at id parent_id
"second comment", 2014-06-03T10:08:44+0000, 37, -1
"third comment", 2014-06-03T10:10:35+0000, 40, -1
"Under third", 2014-06-03T10:10:44+0000, 41, 40
"Under second", 2014-06-03T10:11:59+0000, 42, 37
用户可以添加new cmets,它们不会有parent_id,因为它们不是其他cmets的子代;用户还可以回复到通过前一种方法添加的 cmets,因此它们是主要 cmets 的子代,就像在第二级层次结构上一样。 parent_id 列表示父评论的 ID(如果存在)。如果评论没有父级,则默认 parent_id 为 -1。
话虽如此,我想查询表中的所有 cmets,每个父项后跟其子项,由 created_at ASC排序。来自上述数据集的示例:
second comment
Under second
third comment
Under third
我想过使用 GROUP BY,因为它类似于分组策略,但实际上并不是将所有子项分组到一行中。这种查询的解决方案是什么?还有更多类型的解决方案吗?
【问题讨论】: