몸과 마음이 건전한 SW 개발자

[SQL-JOIN] 프로그래머스 Lv. 3 없어진 기록 찾기 [다시 풀어 보기] 본문

SQL/다시 풀어 보기

[SQL-JOIN] 프로그래머스 Lv. 3 없어진 기록 찾기 [다시 풀어 보기]

스위태니 2024. 12. 26. 17:00

문제 링크

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

 

프로그래머스

SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

정답 코드

SELECT 
    ANO.ANIMAL_ID,
    ANO.NAME
FROM ANIMAL_OUTS ANO
LEFT JOIN ANIMAL_INS ANI
ON ANO.ANIMAL_ID = ANI.ANIMAL_ID
WHERE ANI.ANIMAL_ID IS NULL
ORDER BY ANO.ANIMAL_ID;

풀이 과정

  1. LEFT JOIN:
    • ANIMAL_OUTS를 기준으로 ANIMAL_INS와 LEFT JOIN하여, ANIMAL_OUTS의 모든 데이터를 가져오고 ANIMAL_INS에 해당하는 데이터를 매칭.
  2. WHERE 조건:
    • ANI.ANIMAL_ID IS NULL 조건을 통해, ANIMAL_OUTS에는 있지만 ANIMAL_INS에는 없는 데이터(유실된 데이터)를 필터링.
  3. ORDER BY:
    • ANIMAL_ID 기준으로 오름차순 정렬.

느낀점

  • INNER JOIN, OUTER JOIN, FULL JOIN에 대해서 더 알고 싶으면 아래 링크를 타고 들어가서 공부하면 좋다.

https://hongong.hanbit.co.kr/sql-%EA%B8%B0%EB%B3%B8-%EB%AC%B8%EB%B2%95-joininner-outer-cross-self-join/

 

SQL 기본 문법: JOIN(INNER, OUTER, CROSS, SELF JOIN)

조인은 두 개의 테이블을 서로 묶어서 하나의 결과를 만들어 내는 것을 말한다. INNER JOIN(내부 조인)은 두 테이블을 조인할 때, 두 테이블에 모두 지정한 열의 데이터가 있어야 한다.OUTER JOIN(외부

hongong.hanbit.co.kr