Mysql 获取最新条目并加入另一个表
我正在尝试获取最近一篇文章的用户名和时间戳,比如topicID是88 使用者 职位 所以这里我想要POSTID677和用户bob 我可以在单个sql查询中执行此操作吗 如果我能将其应用于此,那就太好了:Mysql 获取最新条目并加入另一个表,mysql,sql,Mysql,Sql,我正在尝试获取最近一篇文章的用户名和时间戳,比如topicID是88 使用者 职位 所以这里我想要POSTID677和用户bob 我可以在单个sql查询中执行此操作吗 如果我能将其应用于此,那就太好了: SELECT topics.id, topics.subject, topics.forum_id FROM topics WHERE topics.forumID = 16 未经测试,但在我脑海中,我认为以下查询将满足您的需求: SELECT Users.username, Posts.ti
SELECT topics.id, topics.subject, topics.forum_id
FROM topics WHERE topics.forumID = 16
未经测试,但在我脑海中,我认为以下查询将满足您的需求:
SELECT Users.username, Posts.timestamp
FROM Users JOIN Posts on Users.id = Posts.userID
WHERE Posts.topicID = 88
ORDER BY Posts.timestamp DESC
LIMIT 1
假设表
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
的所有最新条目
SELECT Users.username, Posts.timestamp
FROM Users JOIN Posts on Users.id = Posts.userID
WHERE Posts.topicID = 88
ORDER BY Posts.timestamp DESC
LIMIT 1
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