首页 > 数据库    日期:2024-03-30 / 浏览

AI回答 

mysql 批量查询取每一组最新一条数据

需求

根据车牌号查询最新的一条交车记录的‘合同号’ ,与上面需要类似,这里只需要查询‘合同号’这个字段

方式1

直接把需要查询的字段加上contract_no,直接查,不用子查询

SELECT number_plate,id,contract_no, MAX( create_time ) AS latest FROM  
    yl_lease_collect     GROUP BY number_plate ;

mysql 批量查询取每一组最新一条数据

查询所有数据

发现最新的一条数据并不是上面查询的结果,对比id与contract_no,实际查询到的是最老的一条

mysql 批量查询取每一组最新一条数据

结论

对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
    ;

mysql 批量查询取每一组最新一条数据

觉得上面的内容有用吗?快来点个赞吧!

点赞() 我要打赏

温馨提示 : 本站内容来自会员投稿以及互联网,所有源码及教程均为作者总结编辑,请大家在使用过程中提前做好备份,以免发生无法预知的错误,源码类教程请勿直接用于生产环境!

 可能感兴趣的文章