Mysql去重获取最新的一条数据
举例

看数据 这里的业务场景是 用户id为434 在公司id为 234中,存在多条入职离职记录,但实际场景中只想获取该用户最新的一条数据信息,该如何获取呢?
- 第一种解决方法 子查询分组排序
SELECTa.user_id,a.company_id,a.create_time
FROM( SELECT user_id,company_id,create_time FROM user_companys WHERE company_id = 234 AND user_id = 434 GROUP BY user_id, create_time ORDER BY create_time DESC ) a
GROUP BYuser_id;
得到的结果如下:

这种先是获取内部分组并且根据时间排序,最新的数据在最上一条,在分组获得第一条!
- 第二种解决方法 将max函数和group by结合使用 (不需要嵌套)
SELECTuser_id,company_id,MAX( create_time ) as create_time
FROMuser_companys
WHEREcompany_id = 234 AND user_id = 434
GROUP BYuser_id
得到得结果如下

根据group by user_id分组,每组取create_time最大记录,可以在短时间查询出来!
还有什么更好的方法欢迎评论区留言!
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
