当查询中包含的表之间有一对多的关系时,避免在SELECT子句中使用DISTICT,可以使用EXISTS替换。
-
--查询emp表中目前所有员工都在哪些部门工作(包括部门编号和部门名称)
-
--使用DISTINCT(低效)
-
SELECT DISTINCT d.deptno, d.dname FROM dept d, emp e WHERE d.deptno = e.deptno;
-
--使用EXISTS(高效)
-
select d.deptno, d.dname from dept d
-
where exists (select 1 from emp e where e.deptno = d.deptno);
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/17013648/viewspace-1070238/
,如需转载,请注明出处,否则将追究法律责任。