相关和非相关查询区别--求各部门人数--格式:select d.*,0 人数 from dept dselect d.*,( select count(*) from emp e where e.deptno=d.deptno) 人数from dept dselect d.* from dept d部门:10select count(*) from emp e where e.deptno=1020select count(*) from emp e where e.deptno=2030select count(*) from emp e where e.deptno=3040select count(*) from emp e where e.deptno=4050select count(*) from emp e where e.deptno=5060select count(*) from emp e where e.deptno=60对于部门表的每一条记录,都要单独执行一次子查询,所以称为相关子查询。列出薪金比“SMITH”多的所有员工select * from emp ewhere e.sal>( select e.sal from emp e where e.ename='SMITH')smith的值只求一次,这个值对于emp中所有记录都是一样的,即不与各记录相关,所以称为非相关子查询。
分析:效率高的是:非相关。原因:相关子查询执行统计的次数太多