# SQL 99语法 编写顺序:
SELECT ...,...,....(存在聚合函数)
FROM ...JOIN...ON(多表的连接条件)
JOIN ...ON...
WHERE 多表的链接条件 AND 不包含聚合函数的过滤条件
GROUP BY ...,...
HAVING 包含聚合函数的过滤条件
ORDER BY ...,...(ASC/DESC)
LIMIT ...,...
#SQL语句 执行顺序 重要!※
FROM ...,...→ ON → (LEFT/RIGHT JOIN)
→ WHERE → GROUP BY → HAVING → SELECT
→ DISTINCT(去重) → ORDER BY → LIMIT
知道编写顺序和执行顺序的区别,就可以理解为啥能用where就不用having ,因为能提前筛选好再分组效率会高很多