mysql之group by

mySQL group by 默认取分组结果的第一条记录,那么如何获取符合条件的那条记录呢,下面先看一个反例:

sql:select *,max(create_date) maxdate from book_order where ... group by user_name order by create_date desc;

结果集是什么呢?

结果集是取得的是默认结果的第一条记录的信息然后拼接上max(create_date),那如何获取最新上报的数据对应的信息呢,

只需要把分组结果当做条件即可,如下:

sql:select * from select book_order bo inner join (

    select max(create_date) date,user_name from book_order where ... group by user_name

  ) ibo

  on ibo.date=bo.create_date and ibo.user_name=bo.user_name order by bo.create_date desc;

posted @ 2019-11-26 11:10  IAmSao瑞  阅读(305)  评论(0)    收藏  举报