1. 程式人生 > >SQL書寫順序

SQL書寫順序

在使用MyBatis的時候,經常需要自己手寫SQL,多條件查詢的時候很容易只關注條件的拼接,而不注意limit或者group by 的順序。這裡只列出SQL書寫順序,至於執行順序,可參考SQL語句執行順序-萌小Q-部落格
SQL調優

SELECT DISTINCT <select_list>
FROM <left_table>
<join_type> JOIN <right_table>
ON <join_condition>
WHERE <where_condition>
GROUP BY <group_by_list>
HAVING <having_condition>
ORDER BY <order_by_condition>
LIMIT <limit_number>

group by 存在是,select中除了聚集函式,所有的基本列必須是group by裡存在的;
having 基本上同group by 一起使用,類似於where,只是having過濾是基於group by分組後的資料,having一般通過select裡的聚集函式過濾。