gpt4 book ai didi

MySQL 检索组的最新记录

转载 作者:可可西里 更新时间:2023-11-01 06:39:49 26 4
gpt4 key购买 nike

我有一个社交网站,正在为查询而苦苦挣扎。我有一个 posts 表,其中包含所有用户的帖子,然后是一个 post_comments 表,其中包含对帖子的所有评论。我正在尝试从 post_comments 表中通过帖子查找最新评论。 post_comments 表包含以下列:

post_comment_id,post_id,writer_user_id,post_comment_content,日期时间

我按 post_id 对结果进行了分组,如下所示:

SELECT * FROM post_comments GROUP BY post_id

这几乎可以满足我的要求,但它总是为每个帖子返回最旧的评论,而不是最新的评论。我怎样才能让它返回每个帖子的最新评论?

最佳答案

GROUP BY 旨在与聚合函数一起使用,否则它会任意选择每组一行。您的解决方案(在上面和您的 self 回答中)有效,因为 MySQL 似乎保留了每个组的第一行,但您不能保证这将始终发生。

您可以像这样获取每个 post_id 的最新评论的日期。

select post_id, MAX(datetime) as latest from post_comments group by post_id

用它来选择最新的评论:

SELECT t1.* FROM post_comments AS t1
JOIN (
SELECT post_id, MAX(datetime) AS latest FROM post_comments GROUP BY post_id
) AS t2
ON t1.post_id = t2.post_id AND t1.datetime = t2.latest

关于MySQL 检索组的最新记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9444167/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com