조인의 종류는 대표적으로 총 4가지가 있다.
이 4가지 종류에 대해 자세히 알아보자.
두 테이블을 조인할 때 두 테이블의 연결고리 역할인 컬럼이 필요하다.
이 때 이 연결고리 역할 컬럼을 조인 키 컬럼이라고 한다.
여기서 조인 키 컬럼은 상품 ID이다
Inner Join은 교집합( A ∩ B ) 연산과 같다.
즉, 조인 키 컬럼인 상품ID가 두 테이블에서 공통적으로 존재하는 데이터만 추출하게 된다.
이를 SQL로 나타내면 다음과 같다.
SELECT p.*, o.*
FROM PRODUCT p
JOIN ORDER_PRODUCT o
ON p.id = o.id
그리고 결과는 다음과 같다.
상품 테이블과 고객주문상품 테이블에서 조인키 컬럼인 상품ID가 공통적으로 존재하는 데이터만 출력된 것을 확인할 수 있다.
Left Outer Join은 ( (A ∩ B) ∪ (A - B) ) 연산과 같다.
이런느낌인데 조인 키 컬럼인 상품ID가 두 테이블에 공통적으로 존재하는 데이터 외에도 A테이블의 데이터를 포함하는 느낌이다.
이렇게 설명하면 아리까리 할 수 있으니 쿼리와 결과를 보도록 하자.
SELECT p.*, o.*
FROM PRODUCT p
LEFT OUTER JOIN ORDER_PRODUCT o
ON p.id = o.id
결과를 보면 상품ID가 1,2,3인 딸기,참외,포도 외에도 A테이블인 상품테이블의 데이터인 망고가 포함되었음을 알 수 있다. 즉, Inner Join한 결과 외에도 상품테이블의 데이터를 모두 가져온다.
Left Outer Join의 반대개념이라고 생각하면 된다. ( (A ∩ B) ∪ (A - B) )
SELECT p.*, o.*
FROM PRODUCT p
RIGHT OUTER JOIN ORDER_PRODUCT o
ON p.id = o.id
Left Outer Join이 Inner Join한 결과에 A테이블의 데이터를 합친거였다면
Right Outer Join은 Inner Join한 결과에 B테이블의 데이터를 합친거라고 보면 된다.
Full Outer Join은 (A ∪ B) 연산과 같다.
SELECT p.*, o.*
FROM PRODUCT p
FULL OUTER JOIN ORDER_PRODUCT o
ON p.id = o.id
Inner Join한 결과에 A테이블, B테이블의 데이터를 모두 합친 것과 같다.