Hodustory/프로그래밍&DB

[SQL] 프로그래머스 : 없어진 기록 찾기(OUTER JOIN)

호두밥 2021. 7. 25. 15:13

1. 문제

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

 

코딩테스트 연습 - 없어진 기록 찾기

ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디

programmers.co.kr

2. 풀이

  • 입양 OUT 기록은 있는데 입양 IN 기록이 없는 동물 찾기
    • 입양 OUT과 입양IN을 연결 : LEFT OUTER JOIN (KEY는 ANIMAL_ID)
      • 입양 OUT 목록은 다 나와야 하는데 입양 IN 목록에 값이 있으면 나오고, 없으면 NULL이 출력됨
    • 입양 IN 목록에 없는 동물 찾기
      • 입양 IN 의 ANIMAL_ID가 NULL인 값을 찾기 : WHIERE IN.ANIMAL_ID IS NULL
  • ID 순으로 출력 : ORDER BY   

3. 답안

SELECT OUTS.ANIMAL_ID, OUTS.NAME
FROM ANIMAL_OUTS OUTS LEFT JOIN ANIMAL_INS INS
ON OUTS.ANIMAL_ID = INS.ANIMAL_ID
WHERE INS.ANIMAL_ID IS NULL
ORDER BY OUTS.ANIMAL_ID ASC;
반응형