【发布时间】:2014-11-28 05:10:41
【问题描述】:
我有以下表格:
主题:
主题ID(PK), 用户 ID(FK), 标题, 创建日期
消息:
消息ID(PK), 主题ID(FK), 用户 ID(FK), 邮件正文, 创建日期
用户:
用户ID(PK), 用户名
我想在其他字段中选择最后一条消息的用户名、最后一条消息的发布日期以及主题中的消息数量。
我无法选择上次发布消息的用户名。到目前为止,我提出的最佳查询只选择最后发布消息的最后日期,而不是用户名。我应该在查询中添加什么?
SELECT Topics.title, Users.username, Topics.dateCreated, COUNT(Messages.messageID) as postsCount, MAX(Messages.datePosted) as lastPostedDate
FROM Topics
JOIN Users ON Topics.userID = Users.userID
JOIN Messages ON Topics.topicID = Messages.topicID
GROUP BY Topics.topicID
【问题讨论】:
-
您使用的是什么数据库管理系统? (解决方法不同)看起来像 MySQL
-
@Used_By_Already,MySQL。谢谢你的帮助。
标签: sql join group-by aggregate-functions