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

举例
这里的数据是最新的

看数据 这里的业务场景是 用户id为434 在公司id为 234中,存在多条入职离职记录,但实际场景中只想获取该用户最新的一条数据信息,该如何获取呢?

  1. 第一种解决方法 子查询分组排序
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;

得到的结果如下:
在这里插入图片描述
这种先是获取内部分组并且根据时间排序,最新的数据在最上一条,在分组获得第一条!

  1. 第二种解决方法 将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最大记录,可以在短时间查询出来!

还有什么更好的方法欢迎评论区留言!


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部