JPA - 조인1

PPakSSam·2022년 1월 19일
0
post-thumbnail

JPA - 조인 순서


조인의 종류

조인의 종류는 대표적으로 총 4가지가 있다.

  1. Inner Join
  2. Left Outer Join
  3. Right Outer Join
  4. Full Outer Join

이 4가지 종류에 대해 자세히 알아보자.

1. Inner Join

두 테이블을 조인할 때 두 테이블의 연결고리 역할인 컬럼이 필요하다.
이 때 이 연결고리 역할 컬럼을 조인 키 컬럼이라고 한다.
여기서 조인 키 컬럼은 상품 ID이다

Inner Join은 교집합( A ∩ B ) 연산과 같다.
즉, 조인 키 컬럼인 상품ID가 두 테이블에서 공통적으로 존재하는 데이터만 추출하게 된다.

이를 SQL로 나타내면 다음과 같다.

SELECT p.*, o.* 
    FROM PRODUCT p
        JOIN ORDER_PRODUCT o
            ON p.id = o.id

그리고 결과는 다음과 같다.

상품 테이블과 고객주문상품 테이블에서 조인키 컬럼인 상품ID가 공통적으로 존재하는 데이터만 출력된 것을 확인할 수 있다.

2. Left Outer Join

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한 결과 외에도 상품테이블의 데이터를 모두 가져온다.

3. Right Outer 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테이블의 데이터를 합친거라고 보면 된다.

4. Full Outer Join

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테이블의 데이터를 모두 합친 것과 같다.

profile
성장에 대한 경험을 공유하고픈 자발적 경험주의자

0개의 댓글