본문 바로가기
Coding Test/SQL Coding Test

[프로그래머스 / SQL] - 오랜 기간 보호한 동물 (1)

by nam_ji 2024. 1. 25.

오랜 기간 보호한 동물 (1)

문제

  • 동물 보호소에 들어온 정보가 담긴 animal_ins 테이블과 동물 보호소에서 입양 보낸 동물의 정보가 담긴 animal_outs 테이블이 있습니다.
  • 각 테이블을 사용하여
    1. 아직 입양을 못 간 동물 중,
    2. 보호소에 가장 오래 있었던
    3. 동물 3마리의
    4. 이름과 보호 시작일을 조회하는 문제입니다.
    5. 이때 결과는 보호 시작일 순으로 조회해야 합니다.


프로그래머스 코드

  • 먼저 이름과 보호소에 들어온 날짜를 조회해야 하기 때문에
  • SELECT문에 이름과, 들어온 날짜 컬럼명을 작성합니다.
  • FROM절에는 이 컬럼을 조회할 때 조건에 맞게 조회해야 하기 때문에 출력해야 하는 컬럼이 담긴 테이블명을 먼저 작성하고
  • JOIN을 이용하여 다른 테이블명도 작성합니다.
  • ON을 사용하여 연결시킬 수 있는 외래키 컬럼명을 작성하고 각 테이블의 외래키가 일치하는지 작성합니다.
  • WHERE절을 사용하여 animal_id의 컬럼값이 A에는 있지만 B에는 없는 값을 뽑아내기 위해 IS NULL을 사용하였습니다.
  • ORDER BY를 이용하여 조회될 테이블의 날짜를 기준으로 정렬하고
  • 가장 오래된 동물 3마리를 조회해야 하기 때문에 LIMIT를 3을 줬습니다.
-- 코드를 입력하세요
SELECT A.NAME, A.DATETIME
FROM ANIMAL_INS A LEFT JOIN ANIMAL_OUTS B ON A.ANIMAL_ID = B.ANIMAL_ID
WHERE B.ANIMAL_ID IS NULL
ORDER BY A.DATETIME
LIMIT 3