프로그래머스; 있었는데요 없었습니다

랜디 Randy·2024년 3월 18일
0

SQL 문제풀이

목록 보기
17/20

문제를 풀어보고싶으신 분은 이 링크를 클릭하시면 됩니다

문제


문제 설명
ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디, 생물 종, 보호 시작일, 보호 시작 시 상태, 이름, 성별 및 중성화 여부를 나타냅니다.

ANIMAL_OUTS 테이블은 동물 보호소에서 입양 보낸 동물의 정보를 담은 테이블입니다. ANIMAL_OUTS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, NAME, SEX_UPON_OUTCOME는 각각 동물의 아이디, 생물 종, 입양일, 이름, 성별 및 중성화 여부를 나타냅니다. ANIMAL_OUTS 테이블의 ANIMAL_ID는 ANIMAL_INS의 ANIMAL_ID의 외래 키입니다.

관리자의 실수로 일부 동물의 입양일이 잘못 입력되었습니다. 보호 시작일보다 입양일이 더 빠른 동물의 아이디와 이름을 조회하는 SQL문을 작성해주세요. 이때 결과는 보호 시작일이 빠른 순으로 조회해야합니다.

정답코드


--- ANSWER
SELECT ins.ANIMAL_ID, ins.NAME
FROM ANIMAL_INS AS ins
INNER JOIN ANIMAL_OUTS AS outs
ON ins.ANIMAL_ID = outs.ANIMAL_ID
WHERE ins.DATETIME > outs.DATETIME
ORDER BY ins.DATETIME;

우선 ANIMAL_INSANIMAL_OUTS를 JOIN해야 합니다.
그리고 날짜를 비교해야 하는데,

보호 시작일보다 입양일이 더 빠르다면
입양일인 outs.DATETIME보다 보호 시작일이 적혀있는 ins.DATETIME이 날짜가 뒤에 있단 이야기이므로
WHERE ins.DATETIME > outs.DATETIME으로 필터링을 해줍니다.

profile
데이터는 계단, 직관은 다리

0개의 댓글