mysql查询条件关键字where、on、having的区别

本文深入解析MySQL中where、on和having三个关键字的区别与使用场景,where用于定义表行记录的查询条件;on在连表查询时定义表连接条件,生成临时表;having则对聚合函数分组结果进行过滤。了解这些关键字的正确用法,能有效提升查询效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在mysql中,有三种配合条件使用的关键字,分别是where、on、having,这三个关键字使用和效率上是有很大的区别的:

 

where:

  我们最一开始使用的使用的关键字就是where,where的功能是定义表(包括临时表)行记录的查询条件。

 

on:

  on关键字在连表查询时使用,它定义了连接查询时表连接的条件,on查询结果为临时表,如果在连接查询SQL中同时使用where,where条件用于判断on查询的临时表的行记录条件。很显然on条件会先执行,使用得当的话,on会比where的效率一些,因为on直接根据条件生成临时表。

 

having:

  having条件可以用在聚合函数分组过滤后,对分组的结果进行过滤。其实having完全可以代替where使用,但是如果域where联合使用会在where语句之后执行。

 

使用规范:

  一般在查询原表时使用where,在对中间临时结果集进一步过滤时使用having

  

 

转载于:https://www.cnblogs.com/limaomao/p/11088790.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值