mysql5.7 order by desc group by应用问题

select * from(

select 

a.id,

a.fid

a.create_time

from 

order  by a.create_time desc

) b

group by b.fid 

所示语句,group by未取的order by desc后的第一条数据

在order by desc 后加入limit 100000限定后可获取到,为什么,求哪位大神解释一下其中的原理

 

mysql5.7对子查询order by做了优化,你这么写会被忽略掉,5.6还是可以的,5.7要改写:子查询加一个limit子句或者使用聚合函数获取数据再关联原表的写法

order by这样直接使用效率很低,不建议这么用