假如我们的sql语句是这样的:
SELECT DISTINCT
< select_list >
FROM
< left_table >
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 >
那么它的执行顺序就是
FROM <left_table>
JOIN <right_table>
ON <join_condition>
WHERE <where_condition> 如果有多个条件的话,执行顺序是从左往右(我们在写条件的时候,应该把能过滤最多的条件写左边)。
GROUP BY <group_by_list>
HAVING <having_condition>
SELECT 分组之后才会执行SELECT
DISTINCT <select_list>
ORDER BY <order_by_condition>
LIMIT <limit_number> 前面都是SQL92标准语法。limit是MySQL的独有语法。