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 조건절을 주면 간단하게 끝나는 문제이다.

+ Recent posts