例如: 我有一张表记录着所有人员的打卡记录,我想获取每个人的最新一条记录; 例如: 我有一张表记录着所有设备的上报记录,我想获取每个设备的最新一条上记录; 等等类似相关的需求
#利用分组 最大值关联
SELECT r.*
FROM `runoob_tbl` r INNER JOIN (
SELECT MAX(submission_date) submission_date,runoob_author FROM runoob_tbl GROUP BY runoob_author
) b ON b.submission_date = r.`submission_date`;
#利用 distinct 去重
SELECT *
FROM ( SELECT DISTINCT * FROM `runoob_tbl` ORDER BY submission_date DESC) AS t1
GROUP BY t1.runoob_author;
max 函数仅仅对当前字段保证最大,与他一并查询出来的字段无法保证与之对应,所以还需要进行子查询关联; 利用 distinct 可以打破 mysql 分组排序优化,所以可以取到正确的结果;
© 版权声明
博主的文章没有高度、深度和广度,只是凑字数。利用读书、参考、引用、抄袭、复制和粘贴等多种方式打造成自己的纯镀 24k 文章!如若有侵权,请联系博主删除。
喜欢就点个赞吧