본문 바로가기
공부 일지/문제풀이

[프로그래머스] 없어진 기록 찾기 (MySQL)

by Joshbla 2023. 12. 4.

코딩테스트 연습 - 없어진 기록 찾기

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

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

문제 설명

 

다음과 같은 두 테이블이 있고 


문제 풀이

생각 과정

이 문제는 두 테이블은 연결시키고 데이터가 없는 경우를 출력해야한다.

ANIMAL_INS에 기록이 없지만 ANIMAL_OUTS엔 기록이 있는 경우를 찾아야하므로

기준 테이블이 INS가 아닌 OUTS가 되어야한다.

따라서 RIGHT JOIN을 사용해야한다.

 

원하는 결과값은 OUTS의 ID와 NAME

SELECT O.ANIMAL_ID, O.NAME
FROM ANIMAL_INS AS I
RIGHT JOIN ANIMAL_OUTS AS O
ON I.ANIMAL_ID = O.ANIMAL_ID

 

여기서 INS의 기록이 없어야하고 결과는 ID로 정렬

구현

SELECT O.ANIMAL_ID, O.NAME
FROM ANIMAL_INS AS I
RIGHT JOIN ANIMAL_OUTS AS O
ON I.ANIMAL_ID = O.ANIMAL_ID
WHERE I.ANIMAL_ID IS NULL
ORDER BY I.ANIMAL_ID
;