Where and Having区别
发表于:2025-01-20 作者:千家信息网编辑
千家信息网最后更新 2025年01月20日,Where和Having的异同(1)where是查询返回结果之前进行过滤的(2)having是查询返回结果之后,对结果进行过滤的(3)在SQL中增加 HAVING 子句原因是,where关键字无法与聚
千家信息网最后更新 2025年01月20日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安全错误
数据库的锁怎样保障安全
如何修改网站服务器代码
饥荒联机版需要一直开服务器吗
js怎么连接到数据库
数据库雾化视图
数据库怎么删除和增加表格
郑州金水区软件开发公司
重庆斑马网络技术
数据库添加图形化工具
山东有实力的浪潮存储服务器零售
网络安全等级保护行业分析
mysql数据库清空表数据
软件开发的目标怎么描述
网络安全工作ppt模板
银行网络安全应急预案
虚拟云服务器搭建教程
去哪里找软件开发人才
java 数据库预处理
正版软件开发合法吗
社保中心数据库是联网的吗
cmd删除数据库表格中的某一行
化学文摘的数据库有哪些
网络安全新年贺词2022
魔兽世界切换服务器
数据库中日期时间格式
数据库数据恢复英文
网络安全检查工作怎么弄
宣传部成立网络安全领导组
重庆移动服务器租用在哪里靠谱
数据库索引强制生效
ipv6根服务器管理编号