在寫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中命名的新字段進行排序。