학습용 기출·복원자료 분류 확인SQLD · 2024년 55회 SQL 기본 및 활용 · 31번
비교 열이 NOT NULL이고 중복 영향이 없을 때 NOT EXISTS, NOT IN, LEFT JOIN ... IS NULL의 관계는?
1
세 방식 모두 미일치 행을 구해 같은 결과를 낼 수 있다.
정답 근거세 패턴은 조건을 충족하는 상대 행이 없는 행을 찾는 안티 조인으로 표현할 수 있다. 다만 NOT IN의 서브쿼리에 NULL이 들어가면 결과가 달라질 수 있으므로 전제가 중요하다. 따라서 1번 보기 ‘세 방식 모두 미일치 행을 구해 같은 결과를 낼 수 있다.’의 적용 여부를 문제 조건과 대조해야 한다.
2
NOT EXISTS만 미일치 행을 구한다.
오답 이유NOT IN과 LEFT JOIN IS NULL도 적절한 NULL 전제에서 안티 조인을 표현한다. 따라서 2번 보기 ‘NOT EXISTS만 미일치 행을 구한다.’의 적용 여부를 문제 조건과 대조해야 한다.
3
NOT IN만 중복을 제거한다.
오답 이유존재 여부 비교이므로 상대 중복이 결과 행을 늘리지 않는 점은 세 방식이 같다. 따라서 3번 보기 ‘NOT IN만 중복을 제거한다.’의 적용 여부를 문제 조건과 대조해야 한다.
4
LEFT JOIN 방식은 반드시 일치 행을 반환한다.
오답 이유WHERE 오른쪽키 IS NULL을 적용하면 미일치 행만 남는다. 따라서 4번 보기 ‘LEFT JOIN 방식은 반드시 일치 행을 반환한다.’의 적용 여부를 문제 조건과 대조해야 한다.
ANSWER & EXPLANATION
정답 1번
핵심 판단은 1번 ‘세 방식 모두 미일치 행을 구해 같은 결과를 낼 수 있다.’입니다. 세 패턴은 조건을 충족하는 상대 행이 없는 행을 찾는 안티 조인으로 표현할 수 있다. 다만 NOT IN의 서브쿼리에 NULL이 들어가면 결과가 달라질 수 있으므로 전제가 중요하다.