執行順序(SQL)
執行順序
完整查詢
code:sql
SELECT DISTINCT column, AGG_FUNC(column_or_expression), …
FROM mytable
JOIN another_table
ON mytable.column = another_table.column
WHERE constraint_expression
GROUP BY column
HAVING constraint_expression
ORDER BY column ASC/DESC
LIMIT count OFFSET COUNT;
決定要查詢的完整工作資料集
首先套用第一層的WHERE條件
只能存取FROM指定的欄位,SELECT定義的別名在此無法使用
通過WHERE條件後留下的資料列,依照此處子句進行分組
只會保留與該欄位唯一值數量相同的資料列
如果查詢包含GROUP BY子句,就會再套用HAVING條件到已分組的資料列
和WHERE一樣,SELECT定義的別名在此無法使用
之後計算SELECT區段中的運算式和欄位內容
剩餘的資料列,若有指定DISTINCT會移除重複資料列
依照指定欄位,以遞增/遞減方式排序
SELECT運算式已經完成,定義的別名在此可以使用
超出LIMIT與OFFSET指定範圍的資料列會被捨棄
https://www.youtube.com/watch?v=BHwzDmr6d7s