테이블 A
ANAME BNAME
이사 집이사
이삼 익살
익틀 이틀
테이블 B
SAM1 SAM2 SAM3 SAM4 SAM5 SAM6 SAM7 OrgName
이트 이사 2틀 익틀 익트 일특 이틀 정식이름 이사
이트 일트 2틀 익틀 익트 일특 이틀 정식이름 이틀
위 에 보시면
테이블 A 에 익틀, 이틀 테이블 B모두 있는거 제외한 테이블 A의 자료를 뽑고 싶습니다.
테이블 B 컬럼( SAM1, SAM2, SAM3, SAM4, SAM5, SAM6, SAM7, OrgName)에 없는 테이블 A 에 내용을
가져오는 쿼리를 만들려고 합니다.
테이블 A ANAME 컬럼과 테이블 B 컬럼( SAM1, SAM2, SAM3, SAM4, SAM5, SAM6, SAM7, OrgName)과 비교해서 없고
or
테이블 A BNAME 컬럼과 테이블 B 컬럼( SAM1, SAM2, SAM3, SAM4, SAM5, SAM6, SAM7, OrgName)과 비교해서 없는
즉
테이블 A 의 ANAME 컬럼값이 테이블 B 컬럼( SAM1, SAM2, SAM3, SAM4, SAM5, SAM6, SAM7, OrgName)에
없거나
테이블 A 의 BNAME 컬럼값이 테이블 B 컬럼( SAM1, SAM2, SAM3, SAM4, SAM5, SAM6, SAM7, OrgName)
없는
테이블 A 를 뽑을려고 합니다.
제가 만든쿼리가 있는데 테이블 A 데이터가 쌓일수록 만이 느리네요.
참고로 제가 만든 쿼리 올립니다.
select * from 테이블A As D where
not exists (
select * from 테이블B As T where
D.ANAME = T.Sam1 or D.ANAME = T.Sam2 or D.ANAME = T.Sam3) or D.ANAME= T.Sam4 or D.ANAME = T.Sam5 or D.ANAME = T.Sam6 or D.ANAME = T.Sam7 or D.ANAME = T.OrgHanme)
or
not exists (
select * from 테이블B As T where
D.BNAME = T.Sam1 or D.BNAME = T.Sam2 or D.BNAME = T.Sam3 or D.BNAME = T.Sam4 or D.BNAME = T.Sam5 or D.BNAME = T.Sam6 or D.BNAME= T.Sam7 or D.aname = T.OrgHanme
)