본문 바로가기
하루하루/SQL 문제풀이

[프로그래머스/Oracle] 59045. 보호소에서 중성화한 동물

by 키튼햄 2023. 12. 17.

 

문제

https://school.programmers.co.kr/learn/courses/30/lessons/59045?language=oracle

 

 

 

 

쿼리문

SELECT 
    I.ANIMAL_ID,
    I.ANIMAL_TYPE,
    I.NAME
FROM 
    ANIMAL_INS I
    JOIN ANIMAL_OUTS O ON I.ANIMAL_ID = O.ANIMAL_ID
WHERE 
    I.SEX_UPON_INTAKE LIKE 'Intact%'
    AND O.SEX_UPON_OUTCOME NOT LIKE 'Intact%'
ORDER BY I.ANIMAL_ID;

 

 

 

 

풀이

두 테이블을 비교하는 것이기 때문에 JOIN을 사용했다.

SELECT문으로 조회하려는 컬럼이 ANIMAL_INS와 ANIMAL_OUT 테이블 모두에 있으므로 INNER JOIN을 사용했다.

 

그리고 보호소에 들어올때는 중성화되지 않았지만 (Intact --), 보호소에서 나갈때는 중성화된 (Spayed --, Neutered --) 동물을 찾아야 하므로,

ANIMAL_INS 테이블의 SEX_UPON_INTAKE 컬럼에서 Intact로 시작하면서 ANIMAL_OUTS 테이블의 SEX_UPON_OUTCOME 컬럼에서는 Intact로 시작하지 않도록 조건을 주었다.