반응형
https://programmers.co.kr/learn/courses/30/lessons/59042
[ 문제풀이 ]
두 개의 테이블이 주어졌을 때 JOIN을 사용해서 투 테이블을 조합할 수 있는지를 묻는 문제이다.
이 문제는 두 개의 공통부분을 추출하는 것이 아닌 한쪽을 추출하는 것이기 때문에 LEFT or RIGHT OUTER JOIN을 사용해야 한다.
JOIN은 JOIN "조인할 테이블" ON "두 테이블을 조인할 키" WHERE "조건" 형식으로 사용한다. 또한, JOIN을 사용할 때는 반드시 테이블에 Alias를 사용해야 한다. 그 이유는 각 컬럼을 구별하기 위해서이다.
또한, JOIN을 사용하지 않고도 서브 쿼리와 NOT IN을 사용하여 해결할 수 있다.
/* LEFT OUTER JOIN */
SELECT O.ANIMAL_ID, O.NAME
FROM ANIMAL_OUTS AS O
LEFT OUTER JOIN ANIMAL_INS AS I
ON O.ANIMAL_ID = I.ANIMAL_ID
WHERE I.ANIMAL_ID IS NULL
ORDER BY O.ANIMAL_ID ASC;
----------------------------
/* 서브 쿼리 + NOT IN */
SELECT ANIMAL_ID, NAME
FROM ANIMAL_OUTS
WHERE ANIMAL_ID NOT IN (SELECT ANIMAL_ID FROM ANIMAL_INS);
반응형
'Problem Solving > 프로그래머스 SQL' 카테고리의 다른 글
[프로그래머스 SQL] 오랜 기간 보호한 동물(1) (0) | 2021.08.10 |
---|---|
[프로그래머스 SQL] 있었는데요 없었습니다 (0) | 2021.08.10 |
[프로그래머스 SQL] NULL 처리하기 (0) | 2021.08.10 |
[프로그래머스 SQL] 이름이 있는 동물의 아이디 (0) | 2021.08.10 |
[프로그래머스 SQL] 이름이 없는 동물의 아이디 (0) | 2021.08.10 |
댓글