현재 MEMBER 란 테이블 (회원정보) 이 있고..
DEPT_MEMBER 란 부서회원정보(아이디만 있는) 테이블이 있습니다.
Member 테이블은.. recommend_id 라는 추천인 아이디를 넣을 수 있는 컬럼이 있는데...
제가 원하는 것은.. Member 의 정보와 함께.. 각 회원당.. 추천인 으로 등록한 회원수 를 구하는 쿼리를 짜는데...
단서조항은 B.mem_id 를 제외한 데이터 추출이 목적입니다. (not exists 사용)
참.. 무식하다는 생각도 들고.. 아는게 없으니.. 어찌 할 바도 모르겠고..
여러 분들의 도움 부탁 드리고저 글을 작성 합니다..
우선 제가 작성한 쿼리는 다음과 같습니다.
SELECT A.* , (
SELECT COUNT(USER_ID)
FROM member
WHERE recommend_id = A .USER_ID
) as cnt from member A
WHERE not exists (
select 1 from dept_member B
where A.user_id = B.mem_id
)
order by cnt desc
limit 0,10 ;
참고로 A.user_id 는 primary key 이고
A.recommend_id 는 인덱스를 걸어놓은 상태 입니다.
또한.. B.mem_id 도 prikary key 입니다.
여러 고수님의 고견 부탁 드립니다.
실행시간을 더 줄일 수 있는 방법이 없을까요?
|