mysql5.7查询最新一条记录先order by 再group by 的问题

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/yanyf2016/article/details/102664307
SELECT * FROM(
    SELECT *
    FROM t_work_order_fix
    ORDER BY create_time DESC
   )t
    GROUP BY t.work_code
   

这样查 取到的不是理想的数据

 SELECT * FROM(
    SELECT *
    FROM t_work_order_fix
    ORDER BY create_time DESC
    LIMIT 1000)t
    GROUP BY t.work_code

需要增加limit

原理分析:
我们这里使用了临时表排序,继而对其结果进行分组,结果显示失败,加了limit后结果正确,原因是因为临时表中使用order by且使其生效,必须满足三个条件:
1:外部查询禁止分组或者聚合
2:外部查询未指定having,HAVING, order by
3:外部查询将派生表或者视图作为from句中唯一指定源
不满足这三个条件,order by会被忽略。

猜你喜欢

转载自blog.csdn.net/yanyf2016/article/details/102664307