在自参考表中查询父母和孩子

博格丹·祖拉克(Bogdan Zurac)

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。

话虽如此,我想查询表中的所有注释,每个父项后跟其子级,按created_at ASC排序来自上述数据集的示例:

second comment
Under second
third comment
Under third

我考虑使用GROUP BY,因为它类似于分组策略,但实际上并未将所有子级分组到单个行中。这种查询有什么解决方案?有更多类型的解决方案吗?

马丁·K

它没有测试,但我认为这也应该在MySQL中工作:

ORDER BY CASE WHEN parent_id=-1 THEN id ELSE parent_id END, created_at

编辑:如果您不能假设ID以与注释相同的逻辑顺序升序,则会变得更加复杂:

SELECT parent_id,id,created_at parent_date,null child_date,content
    FROM Comments
    WHERE parent_id=-1
UNION
SELECT c.parent_id,c.id,p.created_at as parent_date,c.created_at as child_date,c.content
FROM Comments c
    JOIN (SELECT id,created_at,content
            FROM Comments
            WHERE parent_id=-1
            GROUP BY id,created_at,content) p ON p.id=c.parent_id
ORDER BY parent_date,child_date

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类常见问题

在父母和孩子的表Laravel中插入行

来自分类Dev

汇总自参考表

来自分类Dev

Java中的树实现(根,父母和孩子)

来自分类Dev

父母和孩子中的点击事件

来自分类Dev

SQL查询选择孩子和父母

来自分类Dev

MySQL从表中选择父母和孩子

来自分类Dev

实施一棵树,让孩子和父母可以互相参考

来自分类Dev

如何查询laravel中的深层关系并按孩子筛选父母?

来自分类Dev

CQ模板中的“允许的父母和允许的孩子”属性

来自分类Dev

在SwiftUI中从孩子的孩子调用父母的函数

来自分类Dev

苗条:在父母和孩子之间转移道具

来自分类Dev

Laravel,由父母和孩子获得结果

来自分类Dev

在父母和孩子的表Laravel中插入行

来自分类Dev

修改WordPress中父母和孩子的图标

来自分类Dev

我如何使用班级的父母和孩子?

来自分类Dev

如何在O(1)查询中同时过滤父母和孩子?

来自分类Dev

汇总自参考表

来自分类Dev

父母和孩子的订单查询

来自分类Dev

查询以从父母和孩子那里检索缺陷

来自分类Dev

LINQ查询以按孩子查找父母

来自分类Dev

联接自参考表

来自分类Dev

OOP和C#中的自参考

来自分类Dev

如何编写查询以检查孩子在表中是否有孩子

来自分类Dev

sql,从一张表中获取父母和孩子

来自分类Dev

如何在同一张表中找到父母和孩子

来自分类Dev

如何在一个查询中让所有孩子成为父母

来自分类Dev

你如何在laravel eloquent中查询孩子和父母

来自分类Dev

你如何在laravel eloquent中查询孩子和父母

来自分类Dev

Caliburn.micro 父母->孩子和孩子->父母互动

Related 相关文章

热门标签

归档