老师,这两个查询语句的查询结果是一样的,那他们之间有什么区别呢,工作中使用哪一种更好?

老师,这两个查询语句的查询结果是一样的,那他们之间有什么区别呢,工作中使用哪一种更好?

#工资等级为3级或4级的员工

#方法1

SELECT empno,ename,sal

FROM t_emp 

WHERE EXISTS

(SELECT grade FROM t_salgrade WHERE

 sal BETWEEN losal AND hisal AND grade IN (3,4))

#方法2

SELECT empno,ename,sal

FROM t_emp e,t_salgrade s

WHERE e.sal BETWEEN s.losal AND s.hisal AND s.grade IN (3,4)


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

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

1回答
好帮手慕觉浅 2020-05-27 16:46:46

同学你好:一种是使用子查询,一种是使用表连接,实现的功能虽然是相同的,但执行原理是不一样的,使用表连接的运行效率比较快,因此在工作中我们一般会选择使用表连接即第二种方法来完成该查询。这里是因为要学习子查询所以才举了这个例子,目的是让同学掌握子查询的使用方法,同学知道如何使用即可。

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


  • 提问者 慕粉1504263447 #1
    是不是exists这个关键字在工作中基本也是不使用的呢?
    2020-05-27 16:48:40
  • 好帮手慕觉浅 回复 提问者 慕粉1504263447 #2
    同学你好:exists不是很常用,但同学需要掌握其基本用法。
    2020-05-27 17:24:10
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

0 星
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

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