728x90
# EXISTS
문제308. 사원이름, 부서위치, 부서번호를 출력하시오
SELECT e.ename, d.loc, e.deptno
FROM EMP e, DEPT d
WHERE e.deptno=d.deptno;
문제309. 부서테이블에서 부서위치를 출력하는데 사원테이블에 존재하는 부서번호에 대한 것만 출력하시오
#튜닝전
SELECT DISTINCT d.loc
FROM EMP e, DEPT d
WHERE e.deptno=d.deptno;
#튜닝후
SELECT loc
FROM DEPT d
WHERE EXISTS (SELECT 'x' FROM EMP e WHERE e.deptno=d.deptno);
l exits : 전부다 검색할 필요 없이 존재여부만 판단하기 때문에 해당하는 부서번호를 찾으면 존재하기 때문에 그 이하는 검색하지 않고 해당하는 부서위치를 출력한다.
l 메인쿼리가 서브쿼리가 먼저 수행된다.
문제 310. 부서테이블에서 부서위치를 출력하는데 사원테이블에 존재하지 않는 부서번호에 대한 것만 출력하시오
SELECT loc
FROM DEPT d
WHERE NOT EXISTS (SELECT 'x' FROM EMP e WHERE e.deptno=d.deptno);
'빅데이터과정 > SQL ' 카테고리의 다른 글
#7_140623_CORRELATED SUBQUERY (0) | 2014.07.14 |
---|---|
#7_140623_마지막 문제 (0) | 2014.07.14 |
#7_140623_PAIRWISE (0) | 2014.07.14 |
#7_140623_ALTER TABLE (0) | 2014.07.14 |
#7_140623_DATA DICTIONARY (0) | 2014.07.14 |