안녕하세요. 해당 질문사항을 질의응답에서 찾아보니 없어서 질의드립니다.
사용환경
MSSQL 2000
두개의 회원테이블이 아래와 같이 있습니다.
A Table
Company Name EMail
A AA aaa@naver.com
B BB bbb@naver.com
C CC ccc@naver.com
D DD ddd@naver.com
B Table
Company Name EMail
E EE eee@naver.com
F FF fff@naver.com
G GG aaa@naver.com
H HH bbb@naver.com
여기에서 A의 내용을 가져올 때 B 테이블의 이메일 값이 A에 있을 경우 A에서 삭제하고 아래와 같이 가져오고자 합니다.
Company Name EMail
C CC ccc@naver.com
D DD ddd@naver.com
* A 테이블 중 aaa@naver.com과 bbb@naver.com은 A에 이미 존재하므로 제거하고 위와 같이 가져옴
* 필요 이유 : B테이블 회원에게 메일을 발송했는데 A 테이블 회원에게 다시 발송 시 중복 제거하고 발송
자세한 답변 주시면 감사하겠습니다.


SELECT *
FROM A
WHERE NOT EXISTS(SELECT 1 FROM B WHERE A.email = B.email)
이럴경우에는
NOT IN 보다는 EXISTS가 빠릅니다... 해당 값이 나오면 뒤는 뒤지지 않음, IN은 또 포함될 가능성이 있기 때문에 그 다음에도 뒤짐