본문 바로가기

SQL

프로그래머스 : 오랜 기간 보호한 동물(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 join 과 join 차이

 

결론적으로, 연결한 두 테이블에 같은 데이터가 있는 것만 출력하고 싶다면 INNER JOIN(INNER는 생략 가능)을 사용

 

없는 것도 출력하고 싶다면 LEFT (OUTER) JOIN을 사용한다는 것이죠.


 

풀이

1. 기본 outter join id로 매칭

2. 아직 입양 못간 동물들 중 이니까 

 -> where b.ANIMAL_ID is null 추가

3. 가장 오래 보호소에 있던 동물들이니까 오름차순으로 정렬

 -> 빨리들어온 놈이 오래 있던거니까

 

4. 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