programming question/SQL

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

긍정씨 2021. 11. 1. 19:11

https://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

 

문제는 요겁니다요,,

 

1. '아직 입양을 못 간 동물 중, 가장 오래 보호소에 있었던 동물' 이라고 했으니

접근하기로는 입양 간 테이블인 OUTS 테이블에는 없는 애들을 찾아줘야겠습니다.

 

 

2. 그러면 INS 테이블을 잡고 찾아야할테니 LEFT JOIN 을 써서 OUTS 테이블에 필요 없는 정보는 없애고 조인해주기로 합시다.

 

3. ON 뒤에는 조건이 옵니다. ON A.ANIMAL_ID = B.ANIMAL_ID 로 정해주겠습니다.

 

 

4. WHERE절에는 1에서 말한 것 처럼 OUT 테이블에 없는 정보를 찾아줘야 하니까 B.ANIMAL_ID IS NULL 로 쓰겠습니다.

 

 

5. 오래있던 순대로 검색하라했으니 ORDER BY A.DATETIME ASC. (ASC 는 오름차순이니 안써도 됩니다요)

 

 

6. 3개만 검색이니까 LIMIT 써서 LIMIT 3

 

 

그러면 이러쿵 저러쿵 해서

 

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 ASC
LIMIT 3

 

요로코롬 되네요