Mysql where 和 having 区别

1. where 与 having 的区别:

  where子句中不能使用分组函数

  having子句中可以使用分组函数

  where的执行顺序在having之前,因为where子句在 group by 子句之前,having 子句在 group by 之后

2. where 与 having 都可以用于对单表 或 结果集的筛选:

 

表1 province 如下:  

 

 

 

表 2 city 如下

 

 

 

 

  代码理解 : 

select * from province where p_id =111;

select * from province having p_id =111;

 

  结果1 :

  

 

 

代码理解:

select * from province a  inner join city b on a.p_id = b.p_id  where p_name = '山西';

select * from province a  inner join city b on a.p_id = b.p_id  having p_name = '山西';

结果:

 

 

代码理解:

select * from city having count(c_id) > 1;

 

  

 

代码理解 :

select * from emp_info ei  having salary between 3000 and 4000;

结果

 

 

 

 

 

 

 

 

 

 

 

 

  

posted @ 2021-06-26 17:02  Avicii_2018  阅读(161)  评论(0)    收藏  举报