left join을 활용하면 되는 문제
join 함수는 sql에서 단연 가장 많이 쓰이는 함수라고 할 수 있다.
최소 둘 이상의 테이블을 연결할 때 사용하는 함수로, 테이블 간에 공통분모 컬럼이 하나 이상 존재해야 한다.
크게 INNER / LEFT / OUTER / RIGHT 4가지로 나뉘어진다.
집합과 빗대어보자면,
1. INNER JOIN : 교집합
2. LEFT / RIGHT JOIN : 부분집합
3. OUTER JOIN : 합집합
이라고 할 수 있다.
나는 주로 MySQL을 쓰는데, 실습하려고 봤더니
MySQL에는 OUTER JOIN이 없더라. 대신 LEFT JOIN과 RIGHT JOIN을 함께 써주면 된다고 한다.
(*오라클에서는 위 4가지 JOIN을 모두 활용할 수 있다.)
INNER JOIN의 경우, 테이블 간의 공통적인 데이터만 SELECT되고,
LEFT JOIN은 LEFT를 기준으로 왼쪽에 있는 데이터가 모두 SELECT된다.
RIGHT는 반대로 오른쪽에 있는 데이터가 모두 SELECT,
OUTER는 테이블 간의 모든 데이터가 SELECT된다.
이 개념을 활용해서 문제를 풀어보면,
ANIMAL_INS는 소실된 데이터라고 나와있기 때문에 ANIMAL_OUTS를 활용해주어야 한다.
INS와 OUTS의 외래키 및 공통 분모 컬럼을 이용하여 LEFT JOIN과 WHERE 조건절을 주면 간단하게 끝나는 문제이다.
'Data > SQL' 카테고리의 다른 글
[HackerRank] Occupations, The PADS. 문제 풀이 (MySQL) (0) | 2023.02.06 |
---|---|
[SQLZOO] JOIN 문제 풀이 (0) | 2023.02.01 |
[프로그래머스] SQL Kit 문제 풀이(2) (0) | 2023.01.29 |
[프로그래머스] SQL Kit 문제 풀이(1) (1) | 2023.01.28 |
[프로그래머스] 동명 동물 수 찾기, 입양 시각 구하기(1) (0) | 2022.01.01 |