获取帖子列表的最新 3 条评论

Posted

技术标签:

【中文标题】获取帖子列表的最新 3 条评论【英文标题】:Get latest 3 comments for a list of posts 【发布时间】:2011-09-12 06:33:40 【问题描述】:

目前我正在运行一个查询来获取用户的所有帖子,然后在循环中,我正在查询该特定帖子的最新 3 cmets。超级低效;我一遍又一遍地查询每个帖子。 我想合并我的查询,以便我对所有帖子只查询一次,对于那些特定帖子的所有 cmets 只查询一次。目前我有一个逗号分隔的列表,我为这个用户的所有帖子(例如“1,5,18,9”)

posts表:

posts.id posts.userid

comments表:

comments.id comments.relid(这是 postid) comments.userid

查询应该使用我拥有的 $posts_list,它是以逗号分隔的帖子列表。或者对该用户的所有帖子进行子选择,但这似乎效率低下,因为我已经在字符串中包含帖子列表。

非常感谢您的帮助!

【问题讨论】:

为了获得更好的答案,您还可以包含您当前的脚本。因此人们可以确定循环顺序。但是,可能没有必要。只要检查一下,如果你得到高质量的答案:) 【参考方案1】:

试试这个查询 -

SELECT p.id, p.userid, c.id, c.userid
  FROM posts p
  JOIN (
    SELECT c1.*, COUNT(*) rank FROM comments c1
    LEFT JOIN comments c2
      ON c2.relid = c1.relid AND c2.id <= c1.id
    GROUP BY c1.relid, c1.id
    ) c
  ON p.id = c.relid
WHERE rank < 4

并添加您需要的条件,即 - WHERE p.userid IN (1,5,18,9)。

【讨论】:

以上是关于获取帖子列表的最新 3 条评论的主要内容,如果未能解决你的问题,请参考以下文章

MYSQL 查询 - 获取与帖子相关的最新评论

Linq 查询以获取超过 X 条评论的所有帖子

带有年、月、日、帖子和评论计数的 Wordpress 存档列表

Mongoose 查询:填充来自 Post Schema 的前 2 条评论

parttion by ~~~针对某个字段或多个字段重复,数据只取前n条。问题例子:1.主评论下的评论按着 时间正序最多只取前5条 2.获取最新登录记录......

如何在我的博客网站顶部显示最新帖子和评论?