본문 바로가기

Algorithm/SQL

(MYSQL) - 프로그래머스 (SQL 고득점 kit - JOIN) : 오랜 기간 보호한 동물(1)

반응형

programmers.co.kr/learn/courses/30/lessons/59044

 

코딩테스트 연습 - 오랜 기간 보호한 동물(1)

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

programmers.co.kr

LEFT OUTER JOIN을 이용해 푼 문제였습니다.

 

풀이방법

 1. 테이블 정의 : ANIMAL_INS를 A, ANIMAL_OUTS를 B로 정의합니다.

 2. JOIN 연산 : A를 왼쪽, B를 우측으로하여 ANIMAL_ID가 같은 행을 매칭해 LEFT OUTER JOIN을 합니다. 이 때 B테이블의 ANIMAL_ID가 NULL이라면 입양을 아직 안간 동물입니다.

 3. 정렬 : 보호 기간이 오래된 동물을 뽑기 위해 DATETIME에 대해 오른차순 정렬해줍니다.

 4. 3개 행 선택 : LIMIT을 이용해 3개의 행을 뽑습니다.

 

Code

SELECT A.NAME, A.DATETIME FROM ANIMAL_INS A 
LEFT OUTER JOIN ANIMAL_OUTS B ON A.ANIMAL_ID = B.ANIMAL_ID
WHERE B.ANIMAL_ID IS NULL
ORDER BY A.DATETIME
LIMIT 3