문제에서 요구하는 OUTPUT은 동물이 보호소에 들어오기 전과 후에 중성화를 통해 성별이 바뀌었는지에 대한 검색 정보이다.
문제에서 제공하는 테이블은 ANIMAL_INS와 ANIMAL_OUTS인데 INS 테이블의 ANIMAL_ID를 OUTS 테이블에서 왜래키로 사용한다. 따라서 INNER JOIN을 통해 두 테이블 합치고 요구하는 레코드의 컬럼을 검색해주면 된다.
SELECT T1.ANIMAL_ID, T1.ANIMAL_TYPE, T1.NAME
FROM ANIMAL_INS T1
INNER JOIN ANIMAL_OUTS T2
ON T1.ANIMAL_ID = T2.ANIMAL_ID
WHERE SEX_UPON_INTAKE LIKE '%Intact%'
AND (SEX_UPON_OUTCOME LIKE '%Neutered%' OR SEX_UPON_OUTCOME LIKE '%Spayed%')
위 코드와 같이 Neutered와 Spayed를 따로 검색해주어야 중성화된 모든 동물을 검색할 수 있다. 따라서 ()와 함께 OR문을 사용하였다. 검색 속도 측면에서 Intact, Neutered, Spayed 앞에 % 와일드 카드를 제거해도 좋을 것 같다.
URL: https://school.programmers.co.kr/learn/courses/30/lessons/59045