MySQL逻辑查询处理的步骤序号

SQL执行顺序
8. SELECT
9. DISTINCT
1. FROM
3. JOIN
2. ON
4. WHERE
5. GROUP BY
6. WITH {CUBE|ROLLUP}
7. HAVING
10. ORDER BY
11. LIMIT 
HAVING

用于对where和group by 查询出来的分组进行过滤 , 查出满足条件的分组结果 , 即对聚合计算出来的结果进行二次筛选 , having后的筛选条件应该在计算结果里 . 它是一个过滤声明 , 是在查询返回结果集以后对查询结果进行的过滤操作.
having的使用需要注意以下几点:

  1. having只能用于group by (分组统计语句中)
  2. where是用于在初始表中筛选查询 , having用于在where和group by结果分组中查询
  3. having子句中的每一个元素也必须出现在select列表中
  4. having语句中可以使用聚合函数, 而where不使用

你可能感兴趣的:(MySQL)