mysql 中同时使用orderby和groupby的分析

最近做项目写sql的时候同时使用到了order by 和 group by.然而查询出来的结果不是自己想象中的那样.

下面来分析一样原因:
mysql 写sql的顺序:
select -> from-> where->group by->having->order by.
但mysql的解析器执行顺序:
from-> where->group by->having->select->order by.
所以,从执行的流程来看,是先group by 然后在 order by.
order by拿到的结果里已经是group by以后的结果.

因此,order by的字段必须是group by 里面已经存在的字段.

你可能感兴趣的:(mysql)