mysql虚拟表顺序

最近发现只要理清sql语句生成的虚拟表顺序其实就比较容易分析很多需求
首先mysql的关键字生成顺序:

  • from 和 joins—>生成一张虚拟表a
  • where -------->生成一张虚拟表b
  • group by ----->where 生成的虚拟表根据group by后的字段分组生成一张虚拟表c
  • having-------->根据虚拟表c进行条件筛选,如某个字段p>10000,生成虚拟表d
  • select---------->根据虚拟表d筛选出需要的字段,生成虚拟表e
  • Distinct-------->对数据行进行去重,生成虚拟表f
  • order by------>根据虚拟表f按照order by后的字段排序生成虚拟表g
  • limit ------------>根据虚拟表g截取出部分数据

猜你喜欢

转载自blog.csdn.net/qq_36875803/article/details/111409487