日常书写顺序
SELECT 查询列
FROM 表1
[连接类型] JOIN 表2
ON 连接的条件
WHERE 筛选的条件
GROUP BY 分组的列表
HAVING 分组后的筛选条件
ORDER BY 排序的字段
LIMIT 起始的条目索引,条目数;
即是SELECT →FROM → JOIN → ON → WHERE → GROUP BY → HAVING → ORDER BY→ LIMIT
数据库执行的循序
手写循序 数据库执行循序
SELECT 查询列表 (7)
FROM 表 1 (1)
【连接类型】 JOIN 表 2 (2)
ON 连接条件 (3)
WHERE 筛选条件 (4)
GROUP BY 分组列表 (5)
HAVING 分组后的筛选条件 (6)
ORDER BY 排序的字段 (8)
LIMIT 起始的条目索引,条目数; (9)
FROM → JOIN → ON → WHERE → GROUP BY → HAVING → SELECT → ORDER BY→ LIMIT
注意
**聚合函数是针对结果集进行的,但是where条件并不是在查询出结果集之后运行,所以主函数放在where语句中,会出现错误
那么只能用另外一种方法:havaing。having就是专门为了应付这种情况而发明出来的。。。**