회원별 상담내역중에서 상담을 하지 않은 회원을 조회하려고 합니다.
회원DB와 상담DB는 별도로 분리되어 있고 상담DB에서 회원DB의 일련번호를 참조하고 있습니다.
회원DB자체에는 상담관련 컬럼이 존재하지 않습니다.
이런경우
한번도 상담을 하지 않은 회원을 조회하려고 하면 어떻게 해야 하나요?
제가 생각한 쿼리는
회원DB의 일련번호 참조를 mem_idx 라고 한다면
select * from 회원DB a left outer join (select mem_idx from 상담DB group by mem_idx) b
on a.idx=b.mem_idx where b.mem_idx is null
이렇게 생각을 했는데요.. 이런식으로 해도 원하는 결과값이 나오긴 하는데
뒤쪽에 select mem_idx from 상담DB group by mem_idx
이 부분때문에 데이터가 많아질수록 속도가 느려질 것 같은데
쿼리를 개선할 방법이 없을까요?
Select *
From 회원DB a
Where Not Exists (
Select 'x'
From 상담DB b
Where a.idx = b.mem_idx
)