Mysql-where子句与having子句的区别

  • 顺序问题:where子句必须放在group子句之前;而having子句必须在group子句之后

  1.Where子句

  

  2.having子句

   

  • 字段问题:where子句只可以处理数据表中的数据;having只能处理在group by子句中出现的字段select的列的字段聚合函数处理过的列外部查询中的字段。having根据前面查询出来的是什么就可以在后面接什么

  1.having子句的字段必须出现在检索中(select的查询列、group by中的列、外查询中的列)或者是聚合函数处理后的列,可以是别名

   

  

  2.where子句中的字段必须是数据表(物理表)中的列名,不能是别名或者聚合函数

  

  • having通常是与group子句连用,用于进一步说明

 

原文地址:https://www.cnblogs.com/leihaha/p/8202935.html