250x250
Notice
Recent Posts
Recent Comments
Link
«   2024/09   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
Archives
Today
Total
관리 메뉴

데이터 놀이터

JOIN - 없어진 기록 찾기 본문

SQL

JOIN - 없어진 기록 찾기

jjjk84 2023. 8. 18. 16:49
728x90

1. 문제

 

천재지변으로 인해 일부 데이터가 유실되었습니다.

입양을 간 기록은 있는데, 보호소에 들어온 기록이 없는 동물의 ID와 이름을

ID 순으로 조회하는 SQL문을 작성해주세요.

https://school.programmers.co.kr/learn/courses/30/lessons/59042

 

2. 문제 조건

 

  1. 입양을 간 기록은 있는데, 보호소에 들어온 기록이 없는 -> LEFT JOIN 결과 RIGHT에 해당하는 데이터가 없는 경우, IS NULL 활동
  2. 동물의 ID와 이름 조회 -> SELECT
  3. 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