Php MySql获得10条最近的评论和所有子评论

Php MySql获得10条最近的评论和所有子评论,php,mysql,nested,comments,Php,Mysql,Nested,Comments,我有一个评论表,比如 id | post_id | parent_id | user_id | text | time | likes 注释可以有1级子注释,而不是2级/3级嵌套。用户可以根据时间/喜好对评论进行排序 查询将获得10条最近的评论以及它们的所有子评论 这不起作用。根据需要添加其他条件 SELECT c.`id`, c.`parent_id`, c.`user_id`, c.`text` FROM `comments` c, ( SELECT `id` FROM `comm

我有一个评论表,比如

id | post_id | parent_id | user_id | text | time | likes
注释可以有1级子注释,而不是2级/3级嵌套。用户可以根据时间/喜好对评论进行排序

查询将获得10条最近的评论以及它们的所有子评论


这不起作用。

根据需要添加其他条件

SELECT c.`id`, c.`parent_id`, c.`user_id`, c.`text` 
FROM `comments` c,
(
   SELECT `id` FROM `comments` 
   WHERE `post_id` = '$postId' 
   ORDER BY `time` DESC 
   LIMIT 10
) temp
where c.id = temp.id or c.parent_id=temp.id

如果要获得所有子组件,请删除外部限制comments@MKhalidJunaid它给出的错误是MySql不支持限制子查询。正如您所建议的,删除外部限制将导致显示所有顶级注释,不是吗?请共享您的模式这正是我自己想的:排序呢。。顶级注释按时间描述的顺序返回。。。但是子元素呢。。。它们是按ID的顺序返回还是按任意顺序返回?如果未指定顺序,则无法保证它们会按特定顺序返回。如果您希望所有评论按时间排序,您必须添加一个明确的ORDERBY子句。我理解有关排序的问题。但是我有15000个条目,这个查询很有效,但是看起来很慢。有没有更好的查询可以达到同样的效果?我想在两个查询中完成这项工作-1获取根注释2获取相应的子注释。这是更好的选择吗?15000不是一个很大的数字。你的索引准备好了吗?家长id、职位id、个人时间?您可以选择第二个选项,即2个查询?我会说,测量一下。
SELECT c.`id`, c.`parent_id`, c.`user_id`, c.`text` 
FROM `comments` c,
(
   SELECT `id` FROM `comments` 
   WHERE `post_id` = '$postId' 
   ORDER BY `time` DESC 
   LIMIT 10
) temp
where c.id = temp.id or c.parent_id=temp.id