mysql查询表中最新版本的多条数据
程序员文章站
2022-05-29 21:31:23
...
- 需求:历史数据和新增数据都存放再同一张表中,需要查询表中最新版本的多条数据,根据创建时间区分
首先想到的是先按照时间倒序排序,再分组,发现没有得到想要的结果。
造成如上的原因是5.7以上版本会把子查询的order by语句优化掉,order by无法生效SELECT s1.* FROM (SELECT * FROM tb_t1 ORDER BY update_time DESC) s1 GROUP BY s1.name
- 网上找到另一种方法测试可以实现,使用自连接,先分组查出一组数据中最大(最新)的时间,再自连接查出整条数据
SELECT t1.*
FROM tb_t1 t1
JOIN
(SELECT t2.`name`,MAX(t2.`update_time`) update_time FROM tb_t1 t2 GROUP BY t2.`name`) s1
ON t1.`is_del`=0
AND t1.`update_time`=s1.update_time
AND t1.`name`=s1.name
上一篇: 引入iframe标签 404
下一篇: 醋的保健作用 多吃吃出美丽女人