表连接查询不能使用ON条件的原因?

表连接查询不能使用ON条件的原因?

如题,对视频中老师的解释没有理解。。。

#这里使用表连接,不能使用连接条件,为什么?



#把ALLEN调往RESEARCH部门,职务调整为ANALYST

UPDATE t_emp e JOIN t_dept d

SET e.deptno=d.deptno,e.job="ANALYST"

WHERE e.ename="ALLEN" AND d.dname="RESEARCH";


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

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

3回答
慕粉1470323045 2022-03-15 11:02:28

WHERE 和ON 的作用是一样的,我认为这里表连接的条件 就是where 子句中的WHERE e.ename="ALLEN" AND d.dname="RESEARCH",如果再加上 ON子句中的那个语句,显然这两个表是无法连接的,只能是返回一个空表,用where字句连接就将 t_emp中的一行和t_dept中的一行连接在一起形成一个新表。

好帮手慕阿园 2022-03-09 13:24:55

同学你好,首先ALLEN是要调往RESEARCH部门,并不是在该部门,而on这里的表连接

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

结合where中的and条件表示该语句的查询条件为名为ALLEN且部门一定是RESEARCH

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

所以如果加上on,会导致ALLEN锁死在RESEARCH部门,从而出现查询的结果是有问题

祝学习愉快~

qq_慕沐1297973 2022-03-09 10:14:37

如果加上on条件 e.deptno=d.deptno,两张表做了关联,在加上你的where条件是查找不到数据的,因为更新语句要在原数据的基础上做更新,所有是先查找在执行set语句

  • 提问者 到底是幼稚 #1

    不加ON关键字,不也是表连接么,是表连接的特例?

    2022-03-09 10:17:25
  • on是关联条件,如果不加是不做关联的

    2022-03-09 11:07:37
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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