请问老师我这么写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",从而可能会导致效率比较低。则建议同学使用老师的方式进行查询。
祝学习愉快!
相似问题
回答 1
回答 1