답은 알고리즘 뿐이야!

JOIN - 없어진 기록 찾기 본문

프로그래머스 SQL문제

JOIN - 없어진 기록 찾기

skyde47 2020. 6. 30. 20:07

문제 출처 : https://programmers.co.kr/learn/courses/30/lessons/59042

 

ANIMAL_INS 테이블과 ANIMAL_OUTS 테이블을 조인하여 입양간 기록은 있는데 보호소로 들어온 기록은 없는 동물들의 ID와 이름을 ID순으로 조회하는 문제입니다.

 

SELECT O.ANIMAL_ID, O.NAME FROM ANIMAL_INS I RIGHT OUTER JOIN ANIMAL_OUTS O ON I.ANIMAL_ID = O.ANIMAL_ID WHERE I.ANIMAL_ID IS NULL

 

INS를 왼쪽 OUTS를 오른쪽으로 두고 RIGHT OUTER JOIN을 합니다.

그러면 RIGHT 인 OUTS 테이블에 관해서만 데이터 조회를 하게 되고 거기서 INS와 OUTS에서 ID가 같은 데이터들을 조회합니다.

그러면 INS 테이블과 OUTS 테이블에서 ON 다음에 명시한 ID가 같은 것을 기준으로 INNER JOIN 한 데이터OUTS 테이블의 나머지 데이터 까지 조회가 됩니다.

마지막으로 INS 테이블의 ID가 NULL인 데이터만 조회를 한다면 OUTS 테이블에는 존재하지만 INS 테이블에는 존재하지 않는 문제에서 원하는 답을 도출해낼 수 있습니다.

 

Comments