프로그래머스 SQL

없어진 기록 찾기

kangyuseok 2023. 4. 29. 01:54
728x90

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

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

join 을 사용하는 것이다.(두 테이블을 연결하는 외래키가 있어야 한다.)

-- 코드를 입력하세요
SELECT O.ANIMAL_ID, O.NAME
FROM ANIMAL_INS I RIGHT JOIN ANIMAL_OUTS O
    on I.ANIMAL_ID = O.ANIMAL_ID
WHERE I.ANIMAL_ID IS NULL
ORDER BY O.ANIMAL_ID

OUTER JOIN(합집합) 

- LEFT JOIN : 왼쪽 테이블 전체와 오른쪽 테이블은 두 외래키 값이 같은 결과만 리턴(오른쪽 테이블은 NULL이 포함될 수 있음)

- RIGHT JOIN : 오른쪽 테이블 전체와 왼쪽 테이블은 두 외래키 값이 같은 결과만 리턴(왼쪽 테이블은 NULL이 포함될 수 있음)

여기서는 RIGHT JOIN을 사용했다. 그렇게 되면 ANIMAL_OUTS 테이블의 ANIMAL_ID 값은 NULL이 있을 수 없고

ANIMAL_INS의 테이블의 ANIMAL_ID값엔 NULL이 포함될 수 있다

이해를 위한 reference

이렇게 JOIN 한 결과에서 ANIMAL_INS 테이블의 ANIMAL_ID가 NULL인 것을 찾으면 된다.