Note/DB

NOT EXISTS 문의 사용

Delia :D 2011. 6. 23. 13:26
SELECT
A.PGM_ID, '9125061' AS EMPL_NO,
A.I_SELECT, A.I_INSERT, A.I_UPDATE,
A.I_DELETE, A.I_PRINT, A.LEVEL
FROM (
         SELECT   *
         FROM      TAUTH
         WHERE    EMPL_NO = 'SYSTEMS'
)  A
WHERE NOT EXISTS (
         SELECT   *
         FROM      AUTH B
         WHERE    A.PGM_ID = B.PGM_ID
         AND        B.EMPL_NO = '9125061'
)



=> TAUTH테이블에서 EMPL_NO가 SYSTEMS인 결과집합 A를 구한다.

=> TAUTH테이블에서 EMPL_NO가 '9125061'인 결과집합 B를 구한다.

=> A 결과집합의 PGM_ID 와 B 결과집합의 PGM_ID를 비교하여 B 결과집합에는 존재하지않는 A 결과집합의 PGM_ID에 해당하는 데이터를 조회 한다.

=> 위 쿼리문은 A ⊃ B 일때 A - B 의 결과 이다.