[ 프로그래머스 ] SQL챌린지 6일차 오랜 기간 보호한 동물(1)

2019. 9. 17. 08:39알고리즘/프로그래머스

728x90
반응형

문제 설명


문제 풀이

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

아직 입양을 못 갔으면 ANIMAL_OUTS 테이블에는 기록이 없습니다. 그러므로 

FROM ANIMAL_OUTS A RIGHT JOIN ANIMAL_INS B ON A.ANIMAL_ID = B.ANIMAL_ID
WHERE A.ANIMAL_ID IS NULL

또는

FROM ANIMAL_INS A LEFT JOIN ANIMAL_OUTS B ON A.ANIMAL_ID = B.ANIMAL_ID
WHERE B.ANIMAL_ID IS NULL

이렇게 조인하고 ANIMAL_OUTS의 속성 값이 NULL인 조건식을 세우면 되겠죠.

가장 오래 있었어야 하니 DATETIME의 값이 가장 낮아야 합니다. DATETIME을 오름차순 정렬하면 처음 값들이 가장 오래된 값으로 정렬됩니다.

LIMIT은 출력되는 레코드 수를 제한할 수 있습니다.

 

출처 : 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는 각각 동물의 아이디, 생물 종, 보호 시작일, 보호 시작 시 상태, 이름, 성별 및 중성화 여부를 나타냅니다. NAME TYPE NULLABLE ANIMAL_ID VARCHAR(N) FALS

programmers.co.kr

 

728x90
반응형