mysql 中using 和 having的区别

本文介绍了SQL中使用USING简化表连接的方法,并解释了如何利用HAVING子句配合聚合函数进行数据过滤,以实现对特定条件的数据进行有效的统计分析。

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

USING

用于表连接时给定连接条件(可以理解为简写形式),如

[sql]  view plain  copy
 print ?
  1. SELECT * FROM table1   
  2. JOIN table2 ON table1.id = table2.id   

使用 USING 可以写为
[sql]  view plain  copy
 print ?
  1. SELECT * FROM table1   
  2. JOIN table2 USING(id)  

就这么简单

 

HAVING

引入 HAVING 是因为 WHERE 无法和统计函数一起使用

如表 order (定单)有如下字段:

id, date, price, customer

查找订单总额少于2000的客户可以这样写:

[sql]  view plain  copy
 print ?
  1. SELECT customer, SUM(price) FROM order  
  2. GROUP BY customer   
  3. HAVING SUM(price)<2000  

查找指定客户中订单超过1500的订单总额:
[sql]  view plain  copy
 print ?
  1. SELECT  customer,SUM(price) FROM order  
  2. WHERE customer=’…’ OR customer = ‘…’   
  3. GROUP BY customer   
  4. HAVING SUM(price) > 1500   
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值