[SQL 문제 풀기] 있었는데요 없었습니다(59043)

lhs's avatar
Dec 18, 2024
[SQL 문제 풀기] 있었는데요 없었습니다(59043)
 

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.datetimeo.datetime을 비교해 조건에 맞는 데이터만 필터링한다.
  • ORDER BY 절에서 i.datetime을 기준으로 오름차순 정렬한다.

4. NATURAL JOIN 사용 실패 이유

  • NATURAL JOIN을 사용하여 문제를 해결하려 했으나 실패했다.
  • NATURAL JOIN은 동일한 컬럼명을 모두 기준으로 결합하므로, WHERE 절의 datetime 비교에서 모순이 발생해 사용할 수 없었다.
Share article

LHS's Study Space