小编典典

MySql - HAVING vs WHERE

all

这两个查询有什么区别?

SELECT f.name, 
       u.name, 
       u.id 
FROM   families f 
       JOIN units u 
         ON f.unit_id = u.id 
HAVING u.id IN( 43, 413, 22 )

和:

SELECT f.name, 
       u.name, 
       u.id 
FROM   families f 
       JOIN units u 
         ON f.unit_id = u.id 
WHERE  u.id IN( 43, 413, 22 )

这两个查询的结果完全相同。那么区别在哪里呢?


阅读 64

收藏
2022-05-31

共1个答案

小编典典

sql中的have子句和where子句的区别在于where子句不能和聚合一起使用,但是have子句可以。一种思考方式是,have 子句是 where 子句的附加过滤器。

2022-05-31