본문 바로가기

그 땐 Algorithm했지/그 땐 Programmers했지

[self-study/level 3] SQL | 없어진 기록 찾기 | JOIN

728x90

문제

내 풀이
SELECT OUTS.ANIMAL_ID, OUTS.NAME
FROM ANIMAL_OUTS AS OUTS
LEFT JOIN ANIMAL_INS AS INS
ON OUTS.ANIMAL_ID = INS.ANIMAL_ID
WHERE INS.ANIMAL_ID IS NULL;

👉🏻JOIN: 두 테이블을 공유하고 있는 컬럼(PK or FK)으로 연결하여 하나의 테이블처럼 만든다. 이 문제에서 조건은 ANIMAL_ID이다.

👉🏻LEFT JOIN: JOIN을 기준으로 왼쪽 테이블을 모두 선택한다. (공통적인 부분 + 왼쪽 테이블에만 존재하는 부분)

👉🏻ON: 두 테이블간의 공유하고 있는 컬럼을 명시한다.

✍🏻ANIMAL_OUTS(왼쪽 테이블)를 두고 LEFT JOIN을 사용한 다음 ANIMAL_INS(오른쪽 테이블)의 키가 NULL인 데이터를 찾으면, ANIMAL_OUTS에만 존재하는 데이터를 찾을 수 있다. 

728x90