본문 바로가기
Programming/Programmers

[프로그래머스] 없어진 기록 찾기 (MySQL)

by 데이터현 2021. 11. 16.

https://programmers.co.kr/learn/courses/30/lessons/59042

 

코딩테스트 연습 - 없어진 기록 찾기

ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디

programmers.co.kr

 

차집합 개념이다. 서브쿼리와 NOT IN 을 활용해서 풀면 된다.

SELECT ANIMAL_ID, NAME FROM ANIMAL_OUTS WHERE ANIMAL_ID NOT IN (
    SELECT DISTINCT ANIMAL_ID FROM ANIMAL_INS
);

 

혹은 LEFT OUTER JOIN 이후 INS.ANIMAL_ID 가 NULL 값인 것만 불러오면 OUTS.ANIMAL_ID 만 있는 것을 찾을 수 있다.

SELECT OUTS.ANIMAL_ID, OUTS.NAME
FROM ANIMAL_OUTS OUTS
LEFT OUTER JOIN ANIMAL_INS INS
ON OUTS.ANIMAL_ID = INS.ANIMAL_ID
WHERE INS.ANIMAL_ID is NULL
ORDER BY OUTS.ANIMAL_ID

댓글