프로그래머스 코딩테스트 연습 MySQL Lv.4 : 보호소에서 중성화한 동물

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

 

프로그래머스

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

programmers.co.kr

 

ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다.

 

NAME TYPE NULLABLE
ANIMAL_ID VARCHAR(N) FALSE
ANIMAL_TYPE VARCHAR(N) FALSE
DATETIME DATETIME FALSE
INTAKE_CONDITION VARCHAR(N) FALSE
NAME VARCHAR(N) TRUE
SEX_UPON_INTAKE VARCHAR(N) FALSE

 

ANIMAL_OUTS 테이블은 동물 보호소에서 입양 보낸 동물의 정보를 담은 테이블입니다.

 

NAME TYPE NULLABLE
ANIMAL_ID VARCHAR(N) FALSE
ANIMAL_TYPE VARCHAR(N) FALSE
DATETIME DATETIME FALSE
NAME VARCHAR(N) TRUE
SEX_UPON_OUTCOME VARCHAR(N) FALSE

 

보호소에서 중성화 수술을 거친 동물 정보를 알아보려 합니다. 보호소에 들어올 당시에는 중성화되지 않았지만, 보호소를 나갈 당시에는 중성화된 동물아이디와 생물 종, 이름을 조회하는 아이디 순으로 조회하는 SQL 문을 작성해주세요.

 

조회할 정보 : 중성화 수술을 거친 동물의 아이디, 생물 종, 이름

조건 1 : 보호소 들어올 당시에는 중성화 X, 보호소 나갈 당시에는 중성화 O

조건 2 : 조회 순서는 아이디 순

 

--조회할 정보
SELECT A.animal_id, A.animal_type, A.name
--조건1을 위한 join
from animal_ins A join animal_outs B
on A.animal_id = B.animal_id
--조건1
where A.sex_upon_intake not like B.sex_upon_outcome
--조건2
order by animal_id ;

 

Lv4 문제 중에 정답률이 가장 높고, 쉬운 문제
보호소에서 중성화가 이루어지면 intake와 outcome의 성별 정보가 바뀌는 것을 캐치하는게 핵심