今天改一个需求:
任务大厅需展示:任务列表 union 任务环节(任务下的多个环节)列表
虽是展示任务,还想展示任务下的第一个环节,和任务大厅的设计就匹配了
所以任务分组查询,还要查询出最小的环节
造了一个表和一些数据,做测试
mysql5.7之前,可以用子查询
SELECT * FROM (SELECT * FROM class ORDER BY age DESC) r GROUP BY r.class_num ORDER BY r.age DESC;
5.7以后对排序的sql解析做了优化,子查询中的排序是会被忽略的,改为如下:
SELECT * FROM ( SELECT * FROM class ORDER BY age DESC LIMIT 999999 ) r GROUP BY r.class_num ORDER BY r.age DESC;
备注:limit需要足够大,大到能包括所有查询的数据