[프로그래머스 SQL] 없어진 기록 찾기프로그래머스 SQL 문제 해설2022. 2. 21. 17:00
Table of Contents
문제 링크 https://programmers.co.kr/learn/courses/30/lessons/59042
JOIN문제입니다.
ANIMAL_INS의 테이블이 유실되어서, ANIMAL_OUTS에는 있지만 ANIMAL_INS에는 없는 동물의 ID와 이름을 ID순으로 조회하세요.
SELECT OUTS.ANIMAL_ID, OUTS.NAME
FROM ANIMAL_OUTS OUTS
LEFT JOIN ANIMAL_INS INS
ON OUTS.ANIMAL_ID = INS.ANIMAL_ID
WHERE INS.ANIMAL_ID IS NULL
ORDER BY OUTS.ANIMAL_ID
문제 해설:
- 먼저, LEFT JOIN으로 테이블OUTS에서 ID, NAME열의 값을 가져오고, INS에서는 OUTS와 일치하는 모든 ANIMAL_ID열의 행을 가져옵니다.
- 그렇게 되면 OUTS에는 있지만 INS에는 없는 (유실된)값도 가져와 질텐데, ID 값이 비어 있으니 ID가 NULL일 것입니다.
- WHERE문으로 INS의 ID가 NULL인 값을 IS NULL을 이용하여 OUTS에서 가져온 후에 정렬합니다.
LEFT JOIN으로 묶게 되면 이런 형태로 결합됩니다.
ID가 같은 것끼리 묶습니다. 만약 B에 해당 값이 없다면, 다음과 같이 반환합니다.
보이지 않는 값에는 NULL이 자동적으로 들어가 있습니다.
그러므로 IS NULL으로 판별하는 방식으로 처리가 가능합니다.
결과
'프로그래머스 SQL 문제 해설' 카테고리의 다른 글
[프로그래머스 SQL] 오랜 기간 보호한 동물(1) (0) | 2022.02.21 |
---|---|
[프로그래머스 SQL] 있었는데요 없었습니다 (0) | 2022.02.21 |
SQL | JOIN에 대하여 (0) | 2022.02.21 |
[프로그래머스 SQL] NULL 처리하기 (0) | 2022.02.21 |
[프로그래머스 SQL] 이름이 있는 동물의 아이디 (0) | 2022.02.21 |
@임채성 :: 푸르고 개발 블로그
글 내용 중 잘못되거나 이해되지 않는 부분은 댓글을 달아주세요! 감사합니다! 문의: puleugo@gmail.com