如果将第一个例子写成from子查询

如果将第一个例子写成from子查询

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

select e.ename
from 
t_emp e join (SELECT deptno from t_emp where ename in ('FORD','MARTIN')) p
on e.deptno = p.deptno and e.ename not in ('FORD','MARTIN')

这样写能得到正确的结果,如果我把e.deptno = p.deptno写为e.deptno in p.deptno就报错了:

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

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

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

1回答
好帮手慕美 2019-06-13 10:30:00

同学,你好。p表中根据条件查询的deptno只有一条记录,因此要使用=号。而不能使用in。

当子查询返回的结果列包含一个值时,比较运算符才适用。假如一个子查询返回的结果集是值的列表,这时比较运算符就必须用IN运算符代替。

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

如果我的回答解决了您的疑惑,请采纳!祝学习愉快~~~~~

问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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