我有一个包含注释的mysql表。注释可以有子注释,但只有一个级别(有一个可选的'parent'属性,而注释的父级不能有自己的父级)。我想分页这样的数据,如下:
取第一个,比如10个顶级评论(带有页面偏移量),以及他们的子评论(如果有的话)。
显而易见的解决方案是获取10个注释,然后使用IN
子句获取子注释,但我觉得这样做是错误的(或者至少有更好的方法)。
有没有更好的方法来实现这一目标?
答案 0 :(得分:0)
我认为IN子查询可能是你最好的选择:
SELECT whatever FROM comments_table c
WHERE c.id IN (SELECT id FROM comments_table c2 WHERE some_criteria_here LIMIT 10)
OR c.parent_id IN (SELECT id FROM comments_table c2 WHERE some_criteria_here LIMIT 10)