[프로그래머스] 보호소에서 중성화한 동물 MySQL
문제 : 프로그래머스_보호소에서 중성화한 동물
문제 설명
LEFT JOIN
입양 전의 테이블인 ANIMAL_INS
와 입양 후의 테이블인 ANIMAL_OUTS
가 모두 필요하므로, LEFT JOIN
이 필요한 문제입니다.
문제에서 요구하는 것은 입양 전에는 중성화가 되어있지 않지만, 입양 후에 중성화가 된 동물을 출력하는 것입니다.
여기서 중성화가 되어 있지 않은 동물은 Intact~
로 표현됩니다.
중성화가 되어있는 동물은 Spayed~
나 Neutered~
로 표현됩니다.
Solution
우선 select에서 animal_outs의 ID, Type, Name을 요청합니다.
구하는 아이디, 타입, 이름은 animal_outs 테이블이므로 from 뒤에 바로 animal_outs를 써주고 left join 합니다.
이때 join 하는 조건은 animal_outs와 animal_ins의 id가 같은 경우로 해줍니다.
그러면 서로의 아이디가 동일한 동물들이 출력되게 될 텐데, 여기서 where 조건을 이용하여 입양 전엔 중성화가 안 되어있는 동물을, 입양 후엔 중성화가 되어있는 동물로 조건을 걸어줍니다.
Description
like 'intact%'
의 표현으로 중성화 여부를 문자열에 대한 조건으로 판단하게 했습니다.
select animal_outs.ANIMAL_ID, animal_outs.ANIMAL_TYPE, animal_outs.NAME from animal_outs
left join animal_ins on animal_outs.animal_id = animal_ins.animal_id
where animal_ins.sex_upon_intake like 'intact%' and
(animal_outs.sex_upon_outcome like 'Neutered%' or animal_outs.sex_upon_outcome like 'Spayed%')
PREVIOUS[HTML/CSS/JS] ajax로 Post 요청하기
NEXT[알고리즘] 이진 트리 탐색