SQL分组查询,结果只取最新记录
select a.* from (select * from TABLE order by create_time desc) a group by a.user_id
这里查询的是USER_ID相同的最新一条数据
注:
在mysql5.7以及之后的版本,如果GROUP BY的子查询中包含ORDER BY,但是 GROUP BY 不与 LIMIT 配合使用,ORDER BY会被忽略掉,所以子查询在 GROUP BY 时排序不会生效
使用如下SQL:
若主键随排序字段自增
select e.* from TABLE e where e.id in (select max(id) from TABLE group by user_id
若非自增,第一版的子查询加limit
select a.* from (select * from TABLE order by create_time desc limit 999999) a group by a.user_id
————————————————
版权声明:本文为CSDN博主「Mr_YDK」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/ydk888888/article/details/77036946/
hello world!!!