内连接关于having的问题

内连接关于having的问题

http://img1.sycdn.imooc.com//climg/5e80132f086e9e9916000866.jpg老师,既然on,where,having都是表示条件查询语句,on和where都不能用聚合函数,having可以,为什么用having会出错

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

2回答
好帮手慕笑蓉 2020-03-30 11:03:59

同学,你好。报错提示不知道'e2.sal',这是因为'e2.sal'不是一个具体的数值,运行HAVING e2.sal>AVG(e2.sal)就无法确定e2.sal的值。使用HAVING一般和GROUP BY结合使用,能将GROUP BY分组的每一组数据进行HAVING判断,如:

http://img1.sycdn.imooc.com//climg/5e815f510972169c03070098.jpg

此时AVG(e2.sal)就是每一个e2.sal的平均值,也就没有意义了。

表与表之间的连接条件用on,where用于判断一个表满足的条件。

如果解决了你的疑惑,请采纳,祝学习愉快~ 

提问者 玖__ 2020-03-29 11:30:55

还有老师,on表示判断条件,有时候还能表示表与表之间连接条件。到底表示啥条件,以及where

  • 提问者 玖__ #1
    老师我知道了。HAVING 子句不能独立存在,必须依赖于GROUP BY 语句,所以在这条sql语句是错误的。那我如果我用group by语句。这里可以用having来做条件查询或者表与表之间的连接条件吗
    2020-03-29 12:09:50
  • 提问者 玖__ #2
    如果有,老师能举个例子吗
    2020-03-29 12:10:29
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师