“灵活”的MySQL限制

时间:2012-01-19 19:54:58

标签: python mysql sql django

我有一个包含注释的mysql表。注释可以有子注释,但只有一个级别(有一个可选的'parent'属性,而注释的父级不能有自己的父级)。我想分页这样的数据,如下:

取第一个,比如10个顶级评论(带有页面偏移量),以及他们的子评论(如果有的话)。

显而易见的解决方案是获取10个注释,然后使用IN子句获取子注释,但我觉得这样做是错误的(或者至少有更好的方法)。

有没有更好的方法来实现这一目标?

1 个答案:

答案 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)