문제
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로 시작하지 않도록 조건을 주었다.
'하루하루 > SQL 문제풀이' 카테고리의 다른 글
[프로그래머스/Oracle] 131113. 조건별로 분류하여 주문상태 출력하기 (0) | 2023.12.15 |
---|---|
[Lv.3 Oracle] 144855 - 카테고리 별 도서 판매량 집계하기 (0) | 2023.11.13 |
[프로그래머스/Oracle] 59047. 이름에 el이 들어가는 동물 찾기 / 대소문자 구분하지 않는 조건일때 / UPPER, LOWER 사용 (0) | 2023.10.15 |
[프로그래머스/Oracle] 151138. 자동차 대여 기록에서 장기/단기 대여 구분하기 (1) | 2023.10.13 |