본문 바로가기

프로그래머스(Oracle)

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

728x90

힌트

  1. LEFT OUTER JOIN 사용:
    • ANIMAL_INS 테이블의 모든 레코드와 ANIMAL_OUTS 테이블의 일치하는 레코드를 결합합니다.
    • 이 때, ANIMAL_OUTS에 일치하는 레코드가 없는 경우에도 ANIMAL_INS의 레코드는 유지됩니다.
  2. 조건 필터링:
    • WHERE 절에서 O.DATETIME IS NULL 조건을 사용하여, ANIMAL_OUTS에 없는 동물만 선택합니다.
    • 즉, 아직 입양되지 않은 동물의 정보를 찾고 있습니다.
  3. 정렬 및 제한:
    • ORDER BY I.DATETIME으로 입소 날짜를 기준으로 오름차순 정렬합니다.
    • LIMIT 3을 사용하여 결과를 3개로 제한합니다.

정답은 더보기 클릭

더보기
더보기
SELECT I.NAME, I.DATETIME  -- 동물의 이름과 입소 날짜 선택
  FROM ANIMAL_INS I  -- 입소 테이블에서 데이터 가져오기
  LEFT OUTER JOIN ANIMAL_OUTS O  -- 입소와 출소 테이블을 LEFT OUTER JOIN
  ON I.ANIMAL_ID = O.ANIMAL_ID  -- 동물 ID를 기준으로 조인
  WHERE O.DATETIME IS NULL  -- 출소 기록이 없는 동물 필터링
  ORDER BY I.DATETIME  -- 입소 날짜 기준으로 정렬
  LIMIT 3  -- 결과를 3개로 제한
728x90