본문 바로가기
[Programmers]/SQL 고득점 Kit

프로그래머스 Mysql - 있었는데요 없었습니다.

by 코드몽규 2022. 2. 3.
반응형
Q1 - 있었는데요 없었습니다.

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

 

ANIMAL_OUTS
나와야 하는 결과

  • 해결방법

실수로 동물의 입양일이 잘못 입력되었다! 보호 시작일(ANIMAL_INS.DATETIME)보다 입양일(ANIMAL_OUTS.DATETIME)이 더 빠른 동물의 아이디와 이름을 조회해야한다. 또한 보호시작일 기준으로 빠른순으로 나열해줘야한다.

 

1. 먼저 ANIMAL_INS에서 ANIMAL_ID와 NAME을 SELECT 해준다.

2. 다음으로 ANIMAL_INS와 OUTS 두테이블을 병합해준다. 병합기준은 ANIMAL_ID 으로한다. (*NAME은 중복될 수 도있다.)

3. 보호시작일보다 입양시작일이 더 빠른 ( ANIMAL_INS.datetime > ANIMAL_outs.datetime) 날을 찾아준다

4. 보호시작일 오름차순 순으로 정렬해준다.

select ANIMAL_INS.animal_id, ANIMAL_INS.name
from ANIMAL_INS
left join ANIMAL_outs
on ANIMAL_INS.ANIMAL_ID = ANIMAL_outs.ANIMAL_ID
where ANIMAL_INS.datetime > ANIMAL_outs.datetime
order by ANIMAL_INS.datetime ASC
반응형

댓글