문제 

https://school.programmers.co.kr/learn/courses/30/lessons/59043

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

 

 

 

문제 접근 방식

animals_outs 테이블에서 입양일 datetime의 값에 오류가 있는 튜플들을 구하는 문제이며 이를 정리하면 아래와 같다.

1. [입양일]이 [보호시작일]보다 빠른 튜플을 구한다
>> animal_ins 의 컬럼과 animals_outs의 컬럼을 비교해야하므로 JOIN 사용
>> 이때, animals_outs의 컬럼이 잘못된 것을 찾는것이기에 해당 테이블을 driving table로 하여 LEFT OUTER JOIN 사용
>> JOIN 이후, WHERE [입양일]<[보호시작일] 을 통해 필터링

2. 보호시작일이 빠른 순으로 정렬한다
>> ORDER BY [보호시작일] 로 정렬

 

 

코드

SELECT animal_outs.animal_id,animal_outs.name 
FROM animal_outs 
LEFT OUTER JOIN animal_ins 
ON animal_outs.animal_id = animal_ins.animal_id
WHERE animal_outs.datetime < animal_ins.datetime
ORDER BY animal_ins.datetime;

 

+ Recent posts