我有用户表,每个用户都有多条记录。我需要获取每个用户的最新插入记录。怎么可能用MySQL
用户表
id name value updated_at
1 abc 123 2011-02-03
2 xyz qwe 2011-04-03
3 abc asd 2011-08-08
4 xyz poi 2011-08-07
我的输出应该是
id name value updated_at
3 abc asd 2011-08-08
4 xyz poi 2011-08-07
我使用了像这样的查询
select id,name,value,updated_at from users group by name having max(updated_at)
select id,ep_name,position,max(updated_at) from test1 group by ep_name having max(updated_at)
但是我没能得到想要的结果。我获得了 max(updated_at) 值但无法获得匹配的行。请帮忙
注意:这是否可以不使用子查询来完成。请帮忙
提前致谢
最佳答案
SELECT
users.id,users.name, users.`value`, users.`updated_at`
FROM
users
INNER JOIN
(
SELECT name, MAX(updated_at) AS `updated_at`
FROM
users
GROUP BY
name
) max_users
ON
users.name = max_users.name
AND
users.updated_at = max_users.updated_at
Dan非常感谢... :) group by 中的小改动以匹配我的输出
关于mysql - 如何在 MySQL 中根据条件对记录进行分组(group_by),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7021723/