order by跟group by联合使用
1、项目中需要查询每个用户最后一次登录时间
select * from m_user_login_log a grou by a.user_id order by a.login_time desc;
选择出来不是想要的记录,因为mysql执行顺序如下:
会先执行group by,再执行order by
2、想要得到正确的结果:
SELECT
b.*
FROM(
SELECT
a.*
FROM
m_user_login_log a
WHERE
a.type = 1
ORDER BY
a.create_time DESC
) b
GROUP BY b.user_id ORDER BY b.create_time DESC