mysql分组获取最大时间的数据

SELECT
    * 
FROM
    customer_loan_info tb1,
    ( SELECT loan_no, max( loan_time ) AS loan_time FROM customer_loan_info GROUP BY loan_no ) tb2 
WHERE
    tb1.loan_no = tb2.loan_no 
    AND tb1.loan_time = tb2.loan_time

这个子查询可以查到分组后的编号和最大时间,但是这两个信息并不是一条数据的信息,再关联一下就可以得到具体记录了,这样查询的速度比较快

SELECT loan_no, max( loan_time ) AS loan_time FROM customer_loan_info GROUP BY loan_no

 

通过看博客还了解到另一种方法:

SELECT
    * 
FROM
    ( SELECT * FROM customer_loan_info ORDER BY loan_time DESC LIMIT 1000000000 ) tb1 
GROUP BY
    tb1.loan_no

但是LIMIT 1000000000总觉得不好,如果有一天数据超过了这个值还要改SQL,而且测了一下上面的方法比下面的快些

你可能感兴趣的:(MySQL)