在写SQL的时候发现select语句的执行顺序和写的顺序不一样,遂做出记录一探究竟
SQL查询语句的编写顺序是
- SELECT
- DISTINCT
- FROM
- JOIN
- ON
- WHERE
- GROUP BY
- HAVING
- ORDER BY
- LIMIT
但实际上SQL语句的执行顺序为
- FROM
- ON
- JOIN
- WHERE
- GROUP BY
- HAVING
- SELECT
- DISTINCT
- ORDER BY
- LIMIT
1、SQL会首先选择我的表从哪里选,这其中包括表的限制条件,(如连接方式JOIN和限制条件ON)
2、SQL会选择我的判断条件是什么,也就是WHERE的问题
3、接着它会group by分组,并执行HAVING语句
4、SELECT 语句是在绝大多数语句执行完之后才执行,所以我们要明白在其前面执行的语句会影响它,并在实际工作中注意。这点尤其重要。
5、有了语句的执行顺序后我们可以发现,order by 最后执行,所以我们可以将select中命名的新字段进行排序。