h2boom 2024. 8. 27. 15:59

JOIN

  • JOIN : 복수의 테이블의 레코드를 결합해서 원하는 데이터를 추출하는 방법

 

  • JOIN 종류
    • 내부 조인(INNER JOIN) : 교집합과 같으며 공통적인 부분만 SELECT 한다.
    • 외부 조인(OUTER JOIN) - 공통 속성이 아닌 경우에도 NULL로 결과 제공
      • 왼쪽 외부 조인(LEFT OUTER JOIN) : 공통적인 부분 + 좌측 테이블에 있는 데이터만 SELECT
      • 오른쪽 외부 조인(RIGHT OUTER JOIN) : 공통적인 부분 + 우측 테이블에 있는 데이터만 SELECT
      • 완전 외부 조인(FULL OUTER JOIN) : 합집합과 같으며 양쪽 테이블 모든 데이터 SELECT
    • 세타 조인(THETA JOIN) : 두 테이블의 속성 값을 비교해서 조건을 만족하는 데이터만 SELECT 한다.
      • 주로 서로 연관관계가 없는 테이블을 조인할 때 사용한다.
      • 비교자 (=, !=,  >=, <=, <, >)가 있다. 
    • 동일 조인(EQUI JOIN) : 세타 조인에서 비교자 =을 사용해서 조인하는 방식
    • 자연 조인(NATURAL JOIN) : 내부 조인에 속하며 동일한 컬럼명을 갖는 컬럼을 모두 조인한다.
      • 동일한 이름, 타입을 가진 컬럼이 존재해야한다.
    • 세미 조인(SEMI JOIN) : 자연 조인을 한 후 한쪽 테이블의 결과만 SELECT 한다.
    • 교차 조인(CROSS JOIN) : 곱집합과 같으며 두 테이블 데이터의 모든 조합을 SELECT 한다.
    • 셀프 조인(SELF JOIN) : 자기 자신 테이블을 가지고 조인하는 방식이다.

 

//내부 조인
SELECT *
FROM MEMBER AS M
INNER JOIN TEAM AS T
ON M.TEAMID = T.ID;

//왼쪽 외부 조인
SELECT *
FROM MEMBER AS M
LEFT OUTER JOIN TEAM AS T
ON M.TEAMID = T.ID;

//오른쪽 외부 조인
SELECT *
FROM MEMBER AS M
RIGHT OUTER JOIN TEAM AS T
ON M.TEAMID = T.ID;

//완전 외부 조인
SELECT *
FROM MEMBER AS M
FULL JOIN TEAM AS T
ON M.TEAMID = T.ID;

 

  • ON : JOIN 할 때의 조건