꾸물꾸물 졔의 개발공부
[MySQL] 프로그래머스 - 없어진 기록 찾기 (OUTER JOIN) 본문
https://school.programmers.co.kr/learn/courses/30/lessons/59042
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
- ANIMAL_INS : 동물 보호소에 들어온 동물의 정보를 담은 테이블
- ANIMAL_OUTS : 동물 보호소에서 입양 보낸 동물의 정보를 담은 테이블
문제
천재지변으로 인해 일부 데이터가 유실되었습니다. 입양을 간 기록은 있는데, 보호소에 들어온 기록이 없는 동물의 ID와 이름을 ID 순으로 조회하는 SQL문을 작성해주세요.
구현 과정
- 입양을 간 기록은 있는데, 보호소에 들어온 기록이 없는 동물 찾기
1️⃣ 입양을 간 기록은 있는데, 보호소에 들어온 기록이 없는 동물 찾기
ANIMAL_OUTS에는 있지만 ANIMAL_INS에는 없는 동물의 ID를 찾아야 한다. 그러기 위해서는 ANIMAL_OUTS 테이블을 기준으로 OUTER JOIN을 하여 ANIMAL_INS의 컬럼이 NULL인 경우를 조회하면 된다.
SELECT ~
FROM ANIMAL_INS A RIGHT OUTER JOIN ANIMAL_OUTS B
ON A.ANIMAL_ID = B.ANIMAL_ID
WHERE A.ANIMAL_ID IS NULL
(👉OUTER JOIN은 한쪽에만 데이가 있어도 결과가 조회된다. 기준테이블의 값은 모두 출력되고, 매칭되는 테이블에 매칭 데이터가 없는 경우 NULL로 표시된다.)
✔️코드
SELECT B.ANIMAL_ID, B.NAME
FROM ANIMAL_INS A RIGHT OUTER JOIN ANIMAL_OUTS B
ON A.ANIMAL_ID = B.ANIMAL_ID
WHERE A.ANIMAL_ID IS NULL
ORDER BY B.ANIMAL_ID;
😋Lv3도 완! 헤헤
'알고리즘 > SQL' 카테고리의 다른 글
[MySQL] 프로그래머스 - 5월 식품들의 총매출 조회하기 (JOIN, DATE, GROUP BY, SUM) (0) | 2023.05.11 |
---|---|
[MySQL] 프로그래머스 - 보호소에서 중성화한 동물 (JOIN, String, LIKE) (0) | 2023.05.10 |
[MySQL] 프로그래머스 - 대여 횟수가 많은 자동차들의 월별 대여 횟수 구하기 (GROUP BY ~ HAVING , SubQuery) (0) | 2023.05.02 |
[MySQL] 프로그래머스 - 있었는데요 없었습니다 (JOIN, DATETIME) (0) | 2023.04.30 |
[MySQL] 프로그래머스 - 조건에 맞는 사용자와 총 거래금액 조회하기 (JOIN, GROUP BY) (0) | 2023.04.28 |