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 

猜你喜欢

转载自blog.csdn.net/tuantuanyua/article/details/81502425