본문 바로가기

Algorithm/SQL

(MYSQL) - 프로그래머스 (SQL 고득점 kit - JOIN) : 있었는데요 없었습니다

반응형

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

 

코딩테스트 연습 - 있었는데요 없었습니다

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. LEFT OUTER JOIN하기 : A테이블을 왼쪽 B테이블을 우측으로 하여 JOIN합니다. 매칭 조건은 ANIMAL_ID가 같은 행입니다.

 3. 조건 정의 : B.DATETIME < A.DATETIME인 행을 고릅니다. 입양일이 더 빨라야 하기 때문입니다.

 4. 정렬 : DATETIME을 오름차순으로 정렬합니다.

 

Code

SELECT A.ANIMAL_ID, A.NAME 
FROM ANIMAL_INS A 
LEFT OUTER JOIN ANIMAL_OUTS B ON A.ANIMAL_ID = B.ANIMAL_ID
WHERE B.DATETIME < A.DATETIME
ORDER BY A.DATETIME