MySql最近收到10条评论,包括所有子评论

时间:2014-08-11 09:53:29

标签: php mysql nested comments

我有一个像

这样的评论表
id | post_id | parent_id | user_id | text | time | likes

评论可以有1个级别的子评论(没有第2 /第3级嵌套)。用户可以根据时间/喜欢对评论进行排序。

获取最近10条评论以及所有子评论的查询是什么。

SELECT `id`, `user_id`, `text` 
FROM `comments` 
WHERE `post_id` = '$postId' OR `parent_id` IN 
(
   SELECT `id` FROM `comments` 
   WHERE `post_id` = '$postId' 
   ORDER BY `time` DESC 
   LIMIT 10
) 
ORDER BY `time` DESC 
LIMIT 10

这不起作用。

1 个答案:

答案 0 :(得分:0)

根据需要添加其他条件。

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