如何从与其他表中的聚合函数相关的表中获取信息

时间:2013-11-20 08:41:12

标签: mysql sql inner-join aggregate-functions

我有两个表评论和用户 注释表包含匹配项的注释(match_static_id,comment,timestamp,user_id) 我通过match_id获取max(timestamp)组我的问题是谁可以从users表(id,username)获取max(timestamp)的用户名

SELECT 
    MAX( comments.timestamp ) AS maxtimestamp,
    users.username
FROM  `comments`
INNER JOIN users ON users.id = comments.user_id 
GROUP BY match_static_id

这最后一个查询给了我一个错误的用户名(不是发表匹配的最后评论的用户) 如何获取max(时间戳)的用户名 注意:如果有可能,我想要一种没有子查询的方法,因为我有一个庞大的数据库表,优化的查询对我来说是优先考虑

1 个答案:

答案 0 :(得分:0)

SELECT
    *
FROM comments c
INNER JOIN (SELECT MAX(timestamp) FROM comments GROUP BY match_static_id) as l 
    ON l.timestamp = c.timestamp
INNER JOIN users
    ON users.id = comments.user_id