코딩 테스트 연습/[프로그래머스][리트코드] MySQL

[LV.4] JOIN > 없어진 기록 찾기

duswjd_data 2025. 6. 16. 09:33

문제

https://school.programmers.co.kr/learn/courses/30/lessons/59042

 

프로그래머스

SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

  • 입양을 간 기록은 있는데, 보호소에 들어온 기록이 없는 동물의 ID와 이름을 ID 순으로 조회하는 SQL문을 작성

문제 설명

  • ANIMAL_INS 테이블은 동물 보호소에 입소한 동물의 정보,
    ANIMAL_OUTS 테이블은 입양 보낸 동물의 정보를 담고 있다.
  • 입양 기록은 있는데 입소 기록이 없는 동물 찾기 (ANIMAL_OUTS에는 존재하지만 ANIMAL_INS에는 존재하지 않는 동물)

정답 코드

SELECT O.ANIMAL_ID, O.NAME
FROM ANIMAL_INS I RIGHT JOIN ANIMAL_OUTS O ON I.ANIMAL_ID = O.ANIMAL_ID
WHERE I.ANIMAL_ID IS NULL
ORDER BY O.ANIMAL_ID

풀이 설명

  • RIGHT JOIN을 사용해 ANIMAL_OUTS를 기준으로 조인
  • I.ANIMAL_ID IS NULL 조건으로 ANIMAL_INS에 존재하지 않는 동물만 필터링
  • 결과를 ANIMAL_ID 기준으로 정렬