逻辑查询的顺序
(8) SELECT
(9) DISTINCT <columns> 建了一张临时表,对distinct的列建了唯一索引,用以去重
(1) FROM <left_table> 对from子句中的左表和右表执行笛卡尔集,产生虚拟表vt1
(3) <join_type> JOIN <right_table> left join和rigth join,保留表中未匹配的行插入到vt2中,产生vt3
(2) ON<join_condition> 对vt1进行on筛选,只有符合条件的语句才回被插入到vt2中
(4) WHERE <where_condition> 对vt3进行where筛选,产生vt4
(5) GROUP BY <group_by_list> 对vt4中的记录进行分组操作,产生vt5
(6) WITH {CUBE|ROLLUP}
(7) HAVING <having_condition>
(10) ORDER BY <order_by_list>
(11) LIMIT <limit_number>
这个理解了,深入起来会简单一点
转载于:https://my.oschina.net/chenyaoyao/blog/487171