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
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;
이 문제를 풀기 위해선 LEFT OUTER JOIN을 알고 있어야 한다.
LEFT OUTER JOIN
- 왼쪽에 오는 테이블을 기준으로, 오른쪽에 오는 테이블과 비교해 조건에 맞는 값이 있으면 JOIN해서 가져온다.
- 조건에 맞는 값이 없으면 NULL로 표시한다.
최종적으로 만들어진 테이블에 INS.ANIMAL_ID 값이 NULL이라면 기록이 없어졌다는 뜻이므로,
해당 OUTS.ANIMAL_ID, OUTS.ANIMAL_NAME을 검색하면 된다.
LEFT OUTER JOIN으로 JOIN할 테이블을 지정했다면, ON으로 조건을 설정해줘야 하는 것을 잊지말자.
'PS > SQL' 카테고리의 다른 글
[프로그래머스-SQL-JOIN] 오랜 기간 보호한 동물(1) (0) | 2021.03.17 |
---|---|
[프로그래머스-SQL-JOIN] 있었는데요 없었습니다 (0) | 2021.03.17 |
[프로그래머스-SQL-IS NULL] NULL 처리하기 ❌ (0) | 2021.03.17 |
[프로그래머스-SQL-IS NULL] 이름이 있는 동물의 아이디 (0) | 2021.03.17 |
[프로그래머스-SQL-IS NULL] 이름이 없는 동물의 아이디 (0) | 2021.03.17 |