请问老师我这么写sql语句和视频老师的sql语句比较有什么优缺点(比如性能,执行效率等方面)?

来源:4-1 数据操作语言:表连接查询(一)

调御丈夫

2021-07-18 14:48:48

视频老师的解答是这么写:

SELECT e2.ename

FROM  t_emp e1 JOIN  t_emp e2  ON  e1.deptno=e2.deptno

WHERE  e1.ename="SCOTT" AND  e2.ename!="SCOTT";


我是这么写(老师的看不懂!!!):

SELECT t.ename

FROM t_emp t JOIN (SELECT s.deptno deptno FROM t_emp s WHERE s.ename="SCOTT") e

ON t.deptno = e.deptno AND t.ename!="SCOTT";


请问老师我这么写sql语句和视频老师的sql语句有什么优缺点???如我坚持这么写对吗?





写回答

1回答

好帮手慕小尤

2021-07-18

同学你好,1、join  on和where同时存在时,on条件是在生成临时表时使用的条件,而where是在生成临时表后,再对临时表进行过滤的条件。所以老师的语法是先查询关联的数据生成临时表,然后在临时表进行删选。

2、而同学的sql也是可以的,但在执行查询时,每一次关联都需要执行SELECT s.deptno deptno FROM t_emp s WHERE s.ename="SCOTT",从而可能会导致效率比较低。则建议同学使用老师的方式进行查询。

祝学习愉快!

0

0 学习 · 9886 问题

查看课程