개발하는 자몽

[프로그래머스] JOIN > 있었는데요 없었습니다 본문

SQL

[프로그래머스] JOIN > 있었는데요 없었습니다

jaamong 2024. 1. 31. 20:19

문제

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

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

 

풀이

  • 보호 시작일보다 입양일이 더 빠른 경우
  • 동물 아이디와 이름 조회
  • 보호 시작일이 빠른 순으로 조회
SELECT i.ANIMAL_ID, i.NAME
FROM ANIMAL_INS i INNER JOIN ANIMAL_OUTS o ON i.ANIMAL_ID = o.ANIMAL_ID
WHERE i.DATETIME > o.DATETIME
ORDER BY i.DATETIME;
  1. 보호 시작일보다 입양일이 더 빠른 경우 → 보호도 했고, 입양도 된 경우 이므로 `INNER JOIN` 사용
    • JOIN의 기준이 되는 column은 `ANIMAL_ID`
  2. 보호 시작일보다 입양일이 더 빠른 경우는 WHERE절을 이용하여 나타낼 수 있음. `ANIMAL_INS` 테이블의 `DATETIME`이 `ANIMAL_OUTS` 테이블의 `DATETIME`보다 큰 경우를 구하면 됨.
  3. 보호 시작일이 빠른 순으로 조회해야 하므로 `ORDER BY` 사용.

 

 

 

Comments