原表,我们希望查询出case_type分组后最新一条记录

mysql查询最新的一条数据 mysql 查最新一条_连接查询

1、直接通过分组查询,发现取的是分组后第一条数据(旧),不满足我们需求

mysql查询最新的一条数据 mysql 查最新一条_mysql查询最新的一条数据_02

2、尝试使用子查询先将表倒序排,再对子查询结果集进行分组,发现排序并没有生效,有人说是因为5.7.x版本后排序不生效,因为只把子查询当做一个结果,加limit可以使排序生效

mysql查询最新的一条数据 mysql 查最新一条_连接查询_03

3、加一个limit后查看,确实取到了我们的最新的一条记录

mysql查询最新的一条数据 mysql 查最新一条_分组查询_04

另一种方法,通过连接查询,可以查询成功,但是存在一个问题,如果查询的两个条件字段都相等时,可以查询出两条相同的记录

mysql查询最新的一条数据 mysql 查最新一条_连接查询_05

可以直接加个distinct

mysql查询最新的一条数据 mysql 查最新一条_子查询_06