[프로그래머스 / SQL] 없어진 기록 찾기

Dreamer·2025년 6월 4일

문제

천재지변으로 인해 일부 데이터가 유실되었습니다.
입양을 간 기록은 있는데, 보호소에 들어온 기록이 없는 동물의 ID와 이름을 ID 순으로 조회하는 SQL문을 작성해주세요.

나의 풀이

  1. 첫번째 풀이 : NOT EXISTS 서브쿼리 사용

    직관적으로 존재하지 않으면 true를 반환

SELECT ANIMAL_ID, NAME
FROM ANIMAL_OUTS O
WHERE
    NOT EXISTS (SELECT * FROM ANIMAL_INS I WHERE I.ANIMAL_ID = O.ANIMAL_ID)
ORDER BY ANIMAL_ID
  1. 두번째 풀이 : LEFT JOIN 사용

    FROM절 테이블 기준으로 JOIN
    LEFT JOIN 테이블에 일치하는 값이 없으면 NULL로 채워짐

SELECT O.ANIMAL_ID, O.NAME
FROM ANIMAL_OUTS O
LEFT JOIN ANIMAL_INS I ON O.ANIMAL_ID = I.ANIMAL_ID
WHERE I.ANIMAL_ID IS NULL
ORDER BY O.ANIMAL_ID;
profile
Moving forward based on records

0개의 댓글