본문 바로가기
SQL/문제풀이

프로그래머스 없어진 기록 찾기 풀이(MySQL)

by wakestand 2019. 9. 6.
반응형

사이트명 : 프로그래머스(Programmers)

문제명 : 없어진 기록 찾기

SQL : MySQL

 

없어진 기록 찾기 문제는 두 테이블에서 ANIMAL_OUTS에만 들어있는 행 중

ANIMAL_ID와 NAME을 ANIAML_ID 순으로 출력하라는 내용인데

 

내 풀이방법은 아래와 같다

 

이 문제를 풀기 위해서는 JOIN에 대해서 알아야 하는데

JOIN이란? 두 테이블을 합치는 것인데

여러 JOIN이 있지만 이 내용은 출근해야 되니 차후 설명하고

 

LEFT JOIN은 다음과 같다

 

여기서 JOIN 후에 행이 엄청나게 많이 생기는데

기존에 ANIMAL_INS 테이블에서 없었던 내용들은 ID가 NULL 처리되어 들어오므로

WHERE 절에 IS NULL을 추가하면

 

ANIMAL_OUTS에는 있지만 ANIMAL_INS에는 없는 값들만 출력할 수 있다

 

마지막으로 프로그래머스에 적용 가능한 답안 코드는 아래와 같다

 

SELECT A.ANIMAL_ID, A.NAME
FROM ANIMAL_OUTS A LEFT JOIN ANIMAL_INS B ON A.ANIMAL_ID = B.ANIMAL_ID
WHERE B.ANIMAL_ID IS NULL
ORDER BY A.ANIMAL_ID
반응형

댓글