举例

mysql取最新数据 mysql获取最新的数据_数据

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

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

得到的结果如下:

mysql取最新数据 mysql获取最新的数据_数据库_02


这种先是获取内部分组并且根据时间排序,最新的数据在最上一条,在分组获得第一条!

  1. 第二种解决方法 将max函数和group by结合使用 (不需要嵌套)
SELECT
	user_id,
	company_id,
	MAX( create_time ) as create_time
FROM
	user_companys 
WHERE
	company_id = 234 
	AND user_id = 434 
GROUP BY
	user_id

得到得结果如下

mysql取最新数据 mysql获取最新的数据_数据_03


根据group by user_id分组,每组取create_time最大记录,可以在短时间查询出来!