데이터 놀이터
JOIN - 없어진 기록 찾기 본문
728x90
1. 문제
천재지변으로 인해 일부 데이터가 유실되었습니다.
입양을 간 기록은 있는데, 보호소에 들어온 기록이 없는 동물의 ID와 이름을
ID 순으로 조회하는 SQL문을 작성해주세요.
https://school.programmers.co.kr/learn/courses/30/lessons/59042
2. 문제 조건
- 입양을 간 기록은 있는데, 보호소에 들어온 기록이 없는 -> LEFT JOIN 결과 RIGHT에 해당하는 데이터가 없는 경우, IS NULL 활동
- 동물의 ID와 이름 조회 -> SELECT
- ID 순 -> ORDER BY
3. 코드 작성
SELECT OUTS.ANIMAL_ID
, OUTS.NAME
FROM ANIMAL_INS AS INS
RIGHT JOIN ANIMAL_OUTS AS OUTS
ON INS.ANIMAL_ID = OUTS.ANIMAL_ID
WHERE INS.ANIMAL_ID IS NULL
ORDER BY OUTS.ANIMAL_ID;
4. 회고
- 문제를 잘못 읽어서 FULL OUTER JOIN(LEFT JOIN과 RIGHT JOIN을 UNION한 것)을 하여 풀다가 틀렸다. 덕분에 JOIN을 복습하는 기회가 되기는 했지만 다음부터는 문제가 요구하는 사항을 잘 파악해야겠다.
- 평소에 JOIN만 쓰는 경우가 있는데 여기에는 기본적으로 INNER가 생략되어있다. LEFT, RIGHT JOIN을 잘 활용해야겠다.
728x90
'SQL' 카테고리의 다른 글
String, Date - 자동차 평균 대여 기간 구하기 (0) | 2023.08.22 |
---|---|
IS NULL - 경기도에 위치한 식품창고 목록 출력하기 (0) | 2023.08.21 |
SELECT - 12세 이하인 여자 환자 목록 출력하기 (0) | 2023.08.17 |
GROUP BY - 자동차 대여 기록에서 대여중 / 대여 가능 여부 구분하기 (0) | 2023.08.15 |
GROUP BY - 대여 횟수가 많은 자동차들의 월별 대여 횟수 구하기 (0) | 2023.08.15 |