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;

浙公网安备 33010602011771号