TAB_A 에서 TAB_B 와 중복되는 데이터를 제외한 나머지 데이터를 보려 합니다.
집합으로 하자면 TAB_A 차집합 TAB_B 가 될텐데요
처음에는 쿼리를 이렇게 짯습니다.
SELECT DISTINCT ID
FROM TAB_A
WHERE ID NOT IN
(
SELECT DISTINCT ID FROM TAB_B
)
그랬더니 한건도 안나오더라구요.
참고로 TAB_A 에는 ID 로 DISTINCT 했을때, 5325건의 서로 다른 ID 가 들어있었고
TAB_B 는 ID로 DISTINCT 했을 때, 3329 건의 서로 다른 ID가 들어있었습니다.
만약 TAB_B 의 ID가 TAB_A 에 전부 속한다 할지라도 1996 건은 나와야 정상인데, 한건도 안나옵니다.
그런데 다음과 같은 형식으로 했더니 데이터가 나오더라구요
SELECT DISTINCT ID
FROM TAB_A A
WHERE NOT EXISTS
(
SELECT DISTINCT ID FROM TAB_B
WHERE A.ID = TAB_B.ID
)
뭐가 잘못 된 걸까요?
참고로 ID 는 VARCHAR(255) 입니다. |