01/19 SQL 문제풀이

Data Architect / Engineer·2024년 1월 19일
1

1일_1SQL

목록 보기
8/63
post-thumbnail

문제

  • 프로그래머스 SQL 문제
  • 오랜 기간 보호한 동물(1) / 레벨 3
  • 문제 내용 : 하단 프로그래머스 문제 링크 참조
  • 아직 입양을 못 간 동물 중, 가장 오래 보호소에 있었던 동물 3마리의 이름과 보호 시작일을 조회하는 SQL문을 작성해주세요. 이때 결과는 보호 시작일 순으로 조회해야 합니다.

내가 작성한 Query

SELECT A.NAME, A.DATETIME
FROM ANIMAL_INS A
    LEFT JOIN ANIMAL_OUTS B ON A.ANIMAL_ID = B.ANIMAL_ID
WHERE B.DATETIME IS NULL
ORDER BY A.DATETIME
LIMIT 3
  • 'ANIMAL_INS' 테이블과 'ANIMAL_OUTS' 테이블을 ANIMAL_ID 기준으로 JOIN
  • 이 때, 'ANIMAL_INS'의 데이터를 기준으로 JOIN 해야 하므로, LEFT JOIN
    (입양 나가지 않은 동물들의 데이터를 출력해야 하므로 LEFT JOIN 한거임)
    (그냥 JOIN을 하게 되면, 입양 나간 정보가 없는 동물들의 데이터는 출력되지 않음)
  • 입양 날짜 즉 B.DATETIME 이 NULL인 값을 필터링
    (= 입양 나가지 않은 동물들)
  • ORDER BY이용해 보호 시작일 기준으로 오름차순 정렬
  • LIMIT 이용하여 가장 오래된 동물 3마리 출력

profile
질문은 계속돼 아오에

0개의 댓글