2025_최신기출문제_2024년상시04
-5. 이벤트대상자 쿼리 0/7
-쿼리 비교 X [이벤트대상자] 쿼리 (UPDATE 회원 INNER JOIN 주문 ON 회원.회원번호 = 주문.회원번호 SET 회원.비고 = "이벤트 정보 발송 대상자" WHERE (((회원.회원번호) Not In (select 회원번호 from 주문))); )이 정답(UPDATE 회원 SET 회원.비고 = "이벤트 정보 발송 대상자" WHERE (((회원.회원번호) Not In (select 회원번호 from 주문))); )과 다릅니다.
어디가 틀린걸ㄲㅏ요?
안녕하세요.
틀린 부분은 바깥쪽 쿼리에 주문 테이블을 INNER JOIN으로 추가한 것입니다.
작성하신 쿼리는
회원 INNER JOIN 주문으로 연결되어 있어서, 주문 내역이 있는 회원만 남습니다.
그런데 조건은
회원번호 Not In (select 회원번호 from 주문)즉, 주문 내역이 없는 회원을 찾는 조건입니다.
따라서 바깥쪽에서 이미 주문과 INNER JOIN해 버리면, 찾으려는 대상인 주문 없는 회원이 먼저 제외되어 버립니다.
정답처럼 바깥쪽에는 회원 테이블만 두고, 주문 테이블은 하위 쿼리 안에서만 사용해야 합니다.
핵심은:
업데이트 대상 → 회원 테이블만 사용
주문 여부 확인 → 하위 쿼리에서 주문 테이블 사용
즉, 이번 문제는 주문 테이블을 추가한 것이 오답 원인입니다.
즐거운 하루 되세요.
-
관리자2026-08-17 12:11:19
안녕하세요.
틀린 부분은 바깥쪽 쿼리에
주문테이블을 INNER JOIN으로 추가한 것입니다.작성하신 쿼리는
회원 INNER JOIN 주문으로 연결되어 있어서, 주문 내역이 있는 회원만 남습니다.
그런데 조건은
회원번호 Not In (select 회원번호 from 주문)즉, 주문 내역이 없는 회원을 찾는 조건입니다.
따라서 바깥쪽에서 이미
주문과 INNER JOIN해 버리면, 찾으려는 대상인 주문 없는 회원이 먼저 제외되어 버립니다.정답처럼 바깥쪽에는
회원테이블만 두고,주문테이블은 하위 쿼리 안에서만 사용해야 합니다.핵심은:
업데이트 대상 → 회원 테이블만 사용
주문 여부 확인 → 하위 쿼리에서 주문 테이블 사용즉, 이번 문제는
주문테이블을 추가한 것이 오답 원인입니다.즐거운 하루 되세요.