https://school.programmers.co.kr/learn/courses/30/lessons/59045
WITH not_n AS( #ins에서 중성화를 하지않은 조인테이블
SELECT
ins.ANIMAL_ID,
ins.ANIMAL_TYPE,
ins.NAME,
ins.SEX_UPON_INTAKE,
outs.SEX_UPON_OUTCOME
FROM
ANIMAL_INS ins
INNER JOIN ANIMAL_OUTS outs
ON ins.ANIMAL_ID=outs.ANIMAL_ID
WHERE 1=1
AND LEFT(ins.SEX_UPON_INTAKE, 6) = 'Intact'
)
SELECT
ANIMAL_ID,
ANIMAL_TYPE,
NAME
FROM
not_n
WHERE 1=1
AND LEFT(not_n.SEX_UPON_OUTCOME,6) ='Spayed'
OR LEFT(not_n.SEX_UPON_OUTCOME,8) = 'Neutered'
ORDER BY
ANIMAL_ID
먼저 ins에서 중성화를 하지않은 동물들을 필터링 해서 CTE 작성 후
해당 CTE에서 outs에서 중성화를 한 동물 필터링.