1. 문제 풀이 아이디어
JOIN
절을 사용하여 테이블을 결합해 문제를 해결한다.
2. 나의 정답 코드
SELECT i.animal_id, i.name
FROM animal_ins i
JOIN animal_outs o
ON i.animal_id = o.animal_id
WHERE i.datetime > o.datetime
ORDER BY i.datetime;
3. 정리
JOIN
절을 사용하여animal_outs
테이블과 결합하며, 동일한 컬럼 이름이 있으므로 별칭을 지정한다.
ON
절에서 조인 조건으로 사용할animal_id
를 설정한다.
WHERE
절에서i.datetime
과o.datetime
을 비교해 조건에 맞는 데이터만 필터링한다.
ORDER BY
절에서i.datetime
을 기준으로 오름차순 정렬한다.
4. NATURAL JOIN 사용 실패 이유
NATURAL JOIN
을 사용하여 문제를 해결하려 했으나 실패했다.
NATURAL JOIN
은 동일한 컬럼명을 모두 기준으로 결합하므로,WHERE
절의datetime
비교에서 모순이 발생해 사용할 수 없었다.
Share article