gpt4 book ai didi

mysql - 获取组中最新日期的行?

转载 作者:行者123 更新时间:2023-11-29 02:23:20 24 4
gpt4 key购买 nike

我有两个表:

items:
| item_id | title |

comments:
| comment_id | item_id | posted_at | author_id | text |

posted_at 是发表评论的时间。

如何获取所有项目的列表,以及每个项目的最后评论时间和最后评论的 author_id?

最佳答案

为此,如果您只需要“item_id”,则不一定需要“items”表。

首先编写一个查询来获取每个 item_id 的最新评论时间,如下所示:

SELECT item_id, MAX(posted_at) AS latestComment
FROM comments
GROUP BY item_id;

现在,您可以在 item_id 和 latestComment 列匹配的条件下将其与您的评论表连接起来,以获取每个项目的最新评论作者:

SELECT c.item_id, c.author_id, c.posted_at
FROM comments c
JOIN(
SELECT item_id, MAX(posted_at) AS latestComment
FROM comments
GROUP BY item_id) temp ON temp.item_id = c.item_id AND temp.latestComment = c.posted_at;

如果您确实需要 items 表中的任何信息,您可以使用 item_id 列将上述查询连接到 items 表以获得您需要的信息。

编辑

如果你想添加对项目的要求,你可以加入上表,并将它们放在 WHERE 子句中,甚至放在你加入的 ON 语句中,如下所示:

SELECT c.item_id, c.author_id, c.posted_at
FROM comments c
JOIN items i ON i.item_id = c.item_id AND i.title LIKE '%Apple%'
JOIN(
SELECT item_id, MAX(posted_at) AS latestComment
FROM comments
GROUP BY item_id) temp ON temp.item_id = c.item_id AND temp.latestComment = c.posted_at;

我只是提出了一个示例要求。此查询应提取标题中包含“Apple”一词的所有项目的最新评论。请注意,这是一个内部联接,因此您只会看到有评论的项目。如果您想查看所有 项,我建议使用外部联接。

关于mysql - 获取组中最新日期的行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27691666/

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