一、在写SQL时是书写顺序,而不是执行顺序。
1)、from: 从哪些表中筛选
2)、on: 关联夺标查询时,去除笛卡尔积
3)、where: 从表中筛选的条件
4)、group by: 分组依据
5)、having:在统计结果中再次筛选
6)、order by: 排序
7)、limit: 分页
二、SQL的执行顺序:
from → join → on → where → group by → (分组函数,分组函数中的distinct) → having → select → distinct → order by → limit → union。
三、注意:
1)、表一旦起了别名,会覆盖原有的表名,之后只能使用别名。
2)、字段起了别名,只有执行顺序在select之后的才能使用别名,且别名不会覆盖,使用原字段名也是可以的。
3)、MySQL对别名进行了优化,即使group by, having的执行顺序在select之前,也能使用别名,但其他数据库不可以。