gpt4 book ai didi

mysql - 获取最新条目并加入另一张表

转载 作者:行者123 更新时间:2023-11-29 08:28:30 24 4
gpt4 key购买 nike

我正在尝试获取主题ID为88的最新帖子的用户名和时间戳。

用户

id      |  username    
--------|----------
45234 | kaka
32663 | lenny
52366 | bob

帖子

id      |  message  | topicID | timestamp | userID
--------|-----------|---------|-----------|-------
675 | hello | 88 | 100 | 32663
676 | hey | 88 | 200 | 45234
677 | howdy | 88 | 300 | 52366

所以在这里我想要 postID 677 和用户 bob。

我可以在单个 SQL 查询中执行此操作吗?

如果我能将它应用到这里,那就太好了:

SELECT topics.id, topics.subject, topics.forum_id
FROM topics WHERE topics.forumID = 16

最佳答案

假设表Topic通过Topic.ID = Post.TopicID与表Post链接,并且您想要获取最新的post 与之关联,您可以有一个子查询,它基本上获取每个 的最新 id (假设它设置为自动递增列) topicID 并将结果连接到表 Post 上以获取其他列。此外,您还需要加入表 User 才能获取发布该条目的用户的姓名。

SELECT  a.id, 
a.subject,
a.forumid,
b.message,
b.timestamp,
d.username
FROM topic a
INNER JOIN Posts b
ON a.id = b.topicID
INNER JOIN
(
SELECT topicID, MAX(id) id
FROM Posts
GROUP BY topicID
) c ON b.topicID = c.topicID AND
b.id = c.ID
INNER JOIN users d
ON b.userID = d.id
WHERE a.forumID = 16

如果删除 WHERE 子句,您将获得每个 forumID 的所有最新条目。

关于mysql - 获取最新条目并加入另一张表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17332916/

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