[ 프로그래머스 ] SQL챌린지 5일차 없어진 기록 찾기
2019. 9. 16. 22:25ㆍ알고리즘/프로그래머스
728x90
반응형
문제 설명
문제 풀이
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
그냥 PK로 조인을 해버리면 INNER JOIN이 되어서 ANIMAL_INS와 ANIMAL_OUTS 둘 다 있는 값만 조인이 됩니다.
값이 사라진 것까지 불러와서 JOIN을 하려면 LEFT JOIN 또는 RIGHT JOIN을 해야 합니다.
LEFT JOIN은 왼쪽 테이블에 있는 모든 값을 가져옵니다. 조인이 되는 건 하고요. 그래서 오른쪽 테이블에 없는 값은 NULL로 채워집니다.
RIGHT JOIN은 반대로 오른쪽 테이블에 있는 값을 가져옵니다.
저는 ANIMAL_OUTS를 왼쪽에 썼기 때문에 LEFT JOIN을 해야 보호소에 들어온 기록이 NULL인 튜플을 찾을 수 있습니다.
SELECT *
FROM ANIMAL_OUTS A LEFT JOIN ANIMAL_INS B ON A.ANIMAL_ID = B.ANIMAL_ID
이렇게 실행해 보시면 단박에 이해되실 겁니다.
출처 : https://programmers.co.kr/learn/courses/30/lessons/59042
728x90
반응형
'알고리즘 > 프로그래머스' 카테고리의 다른 글
[ 프로그래머스 ] SQL챌린지 6일차 오랜 기간 보호한 동물(1) (0) | 2019.09.17 |
---|---|
[ 프로그래머스 ] SQL챌린지 5일차 있었는데요 없었습니다 (0) | 2019.09.16 |
[ 프로그래머스 ] SQL챌린지 4일차 동명 동물 수 찾기 (0) | 2019.09.14 |
[ 프로그래머스 ] SQL챌린지 4일차 고양이와 개는 몇 마리 있을까 (0) | 2019.09.14 |
[ 프로그래머스 ] SQL챌린지 3일차 이름이 없는 동물의 아이디 (0) | 2019.09.14 |