Where and Having区别
发表于:2024-10-17 作者:千家信息网编辑
千家信息网最后更新 2024年10月17日,Where和Having的异同(1)where是查询返回结果之前进行过滤的(2)having是查询返回结果之后,对结果进行过滤的(3)在SQL中增加 HAVING 子句原因是,where关键字无法与聚
千家信息网最后更新 2024年10月17日Where and Having区别
Where和Having的异同
(1)where是查询返回结果之前进行过滤的
(2)having是查询返回结果之后,对结果进行过滤的
(3)在SQL中增加 HAVING 子句原因是,where关键字无法与聚合函数一起使用,having子句常跟group by一同使用,过滤分组后的数据
测试表
mysql> select * from t_order;+--------+---------+------------+------------+| emp_no | dept_no | from_date | to_date |+--------+---------+------------+------------+| 22744 | d006 | 1986-12-01 | 9999-01-01 || 24007 | d005 | 1986-12-01 | 9999-01-01 || 30970 | d005 | 1986-12-01 | 2017-03-29 || 31112 | d002 | 1986-12-01 | 1993-12-10 || 40983 | d005 | 1986-12-01 | 9999-01-01 || NULL | d008 | 1986-12-01 | 1992-05-27 || 48317 | d008 | 1986-12-01 | 1989-01-11 || 49667 | d007 | 1986-12-01 | 9999-01-01 || 50449 | d005 | 1986-12-01 | 9999-01-01 || 10004 | d004 | 1986-12-01 | 9999-01-01 |+--------+---------+------------+------------+10 rows in set (0.00 sec)
Where后面如果提前使用列emp_no的别名aaa进行过滤的话,会报错列不存在,这是因为where字句是先对表进行过滤,才开始查询结果的
mysql> select emp_no as aaa from t_order where emp_no=22744;+-------+| aaa |+-------+| 22744 |+-------+1 row in set (0.00 sec)mysql> select emp_no as aaa from t_order where aaa=22744;ERROR 1054 (42S22): Unknown column 'aaa' in 'where clause'
Having后面可以跟列emp_no的原名或者别名aaa都可以,也可以跟group by,然后对分组后的聚合函数列进行筛选
mysql> select emp_no as aaa from t_order having emp_no=22744;+-------+| aaa |+-------+| 22744 |+-------+1 row in set (0.01 sec)mysql> select emp_no as aaa from t_order having aaa=22744;+-------+| aaa |+-------+| 22744 |+-------+1 row in set (0.00 sec)mysql> select dept_no,min(emp_no) aaa from t_order group by dept_no having aaa=31112;+---------+-------+| dept_no | aaa |+---------+-------+| d002 | 31112 |+---------+-------+1 row in set (0.00 sec)
结果
查询
函数
别名
子句
分组
关键
关键字
原名
原因
字句
异同
数据
这是
会报
测试
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
在jsp中调用数据库数据
化工软件开发一个多少钱
嘉兴数据网络技术市场价格
服务器电脑挂机吧
三亚手机软件开发
红动中国数据库
入侵网游服务器
商丘软件开发公司有哪几家
mysql数据库返回数据乱码
大学生网络安全缺乏的表现
神秘海域是用什么软件开发
网络安全隐患该如何解决
海兴网络技术
ao附加数据库时出错
嵌入式软件开发与视觉
学校网络安全法宣传报道
亚马逊互联网科技有限公司
防止迷恋网络安全教育记录
昆明哪里有网络技术公司
久保田无极泵服务器
我的世界盘灵古域连接不上服务器
恒创科技香港云服务器
网络技术专业能考哪些证
手机软件开发商能找到流量吗
软件开发预算报价
合鼎网络技术有限公司
数据库验收的前提条件
服务器远程
乌鲁木齐软件开发怎么选
ai智能提分系统软件开发