[SQL] 074. 서브 쿼리 사용하기4
Updated:
초보자를 위한 SQL 200제 교재를 토대로 공부한 내용입니다.
오라클 SQL을 기반으로 합니다.
실습에 사용한 테이블은 정보문화사 홈페이지에서 받을 수 있습니다.
[예시]
특정 테이블의 데이터가 다른 테이블에 존재하는지 확인할 때 EXISTS
, NOT EXISTS
를 사용한다.
다음 예시를 보면 서브 쿼리 안에 WHERE
절에 EQUI JOIN 조건을 추가하였다.
하지만 서브 쿼리 안에는 DEPT 테이블을 기입하지 않는다.
메인 쿼리의 DEPT 테이블을 받아와서 사용하기 때문이다.
결과는 DEPT 테이블에 DEPTNO(부서번호)가 EMP 테이블에도 존재하면 출력한다.
-- 존재 여부에 따라 출력
SELECT *
FROM DEPT A
WHERE EXISTS (SELECT *
FROM EMP B
WHERE A.DEPTNO = B.DEPTNO);
-- NOT EXISTS
-- SELECT *
-- FROM DEPT A
-- WHERE NOT EXISTS (SELECT *
-- FROM EMP B
-- WHERE A.DEPTNO = B.DEPTNO);
[결과]
DEPTNO | DNAME | LOC |
---|---|---|
10 | ACCOUNTING | NEW YORK |
30 | SALES | CHICAGO |
20 | RESEARCH | DALLAS |
Leave a comment