我有一个如下的评论表,在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
用户可以添加新的评论,这些评论没有parent_id,因为它们不是其他评论的子评论;用户也可以回复通过上述方法添加的评论,因此它们是主评论的子评论,就像第二层级一样。如果存在,则parent_id列表示父评论的id。如果评论没有父评论,则默认的parent_id为-1。
话虽如此,我想从表中查询所有评论,每个父评论后面跟随其子评论,按照创建时间升序排序。来自上述数据集的示例:
second comment
Under second
third comment
Under third
我考虑使用GROUP BY,因为它类似于分组策略,但实际上并没有将所有子项分组到单个行中。有什么解决这种查询的方法吗?还有其他类型的解决方案吗?