AI回答
需求
根据车牌号查询最新的一条交车记录的‘合同号’ ,与上面需要类似,这里只需要查询‘合同号’这个字段
方式1
直接把需要查询的字段加上contract_no,直接查,不用子查询
SELECT number_plate,id,contract_no, MAX( create_time ) AS latest FROM
yl_lease_collect GROUP BY number_plate ;
查询所有数据
发现最新的一条数据并不是上面查询的结果,对比id与contract_no,实际查询到的是最老的一条
结论
对MAX() 函数有误解,这个只是查询某个字段最大的数据,仅针对字段。想要查询最新记录,还是要关联查询。
最终查询
SELECT
m1.id, m1.contract_no
FROM
yl_lease_collect m1
JOIN
(
SELECT number_plate, MAX( create_time ) AS latest FROM
yl_lease_collect where number_plate in(
'123沪123'
)
GROUP BY number_plate
) m2
ON m1.number_plate = m2.number_plate
AND m1.create_time = m2.latest
;