我有一个Comments如下表所示,在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评论,没有parent_id,因为它们不是其他评论的子级;用户还可以reply到通过之前的方法添加的注释,因此它们是主要注释的子级,就像在层次结构的第二级上一样。这父 ID列表示父评论的 ID(如果存在)。如果评论没有父级,则默认父 ID is -1.
话虽这么说,我想查询表中的所有评论,每个父级后面跟着它的子级,ordered由 create_at ASC 提供。上述数据集的示例:
second comment
Under second
third comment
Under third
我想到使用 GROUP BY,因为它类似于分组策略,但实际上并未将所有子项分组到一行中。这种查询的解决方案是什么?还有更多类型的解决方案吗?