
SQL 공부중 입니다. ✍✍✍
문제
https://school.programmers.co.kr/learn/courses/30/lessons/59045
풀이
SELECT A.ANIMAL_ID, A.ANIMAL_TYPE, A.NAME
FROM ANIMAL_INS A
INNER JOIN ANIMAL_OUTS B
ON A.ANIMAL_ID = B.ANIMAL_ID
WHERE A.SEX_UPON_INTAKE LIKE 'Intact%' AND B.SEX_UPON_OUTCOME IN ('Spayed Female','Neutered Male')
ORDER BY A.ANIMAL_ID ASC;
프로그래머스 SQL Level 4 첫 문제입니다. JOIN과 관련한 문제로 첫 문제이라서 그런지 쉽게 해결할 수 있었습니다.
저의 풀이 이외에
SELECT ANIMAL_ID, ANIMAL_TYPE, NAME FROM ANIMAL_OUTS
WHERE ANIMAL_ID IN (SELECT ANIMAL_ID FROM ANIMAL_INS
WHERE SEX_UPON_INTAKE LIKE "%Intact%") && (SEX_UPON_OUTCOME LIKE "%Spayed%" || SEX_UPON_OUTCOME LIKE "%Neutered%")
위와 같이 서브 쿼리를 통해 먼저 보호소에 들어온 중성화되지 않은 ANIMAL_ID를 구한 후에, 입양보낸 동물 중 중성화된 ANIMAL_ID를 구한 풀이를 볼 수 있었습니다.