데이터 분석/SQL

[SQL] 2. 데이터 조인

PSYda 2021. 3. 29. 23:32
반응형

1. Join의 종류

  • Join이란?
    • 두 테이블에 공통으로 있는 칼럼을 이용해 연결 시키는 것
종류 설명
INNER 조건이 정확히 일치하는 데이터만 출력
LEFT OUTER 앞에 있는 데이터는 모두 출력, 뒤에 있는 데이터는 조건이 일치하는 데이터 출력 + 없으면 NULL
RIGHT OUTER 뒤에 있는 데이터는 모두 출력, 앞에 있는 데이터는 조건이 일치하는 데이터 출력 + 없으면 NULL
FULL OUTER 앞뒤 모든 일치하는 데이터 출력, 없으면 NULL
SELF 동일한 테이블끼리 수행하는 INNER JOIN
CROSS 두 테이블 컬럼의 곱집합 출력
NATURAL 두 테이블의 같은 이름의 컬럼 기준으로 INNER JOIN

2. Join의 문법

종류 문법
INNER 테이블1 A INNER JOIN 테이블2 B ON A.KEY = B.KEY
LEFT OUTER 테이블1 A LEFT OUTER JOIN 테이블2 B ON A.KEY = B.KEY
RIGHT OUTER 테이블1 A RIGHT OUTER JOIN 테이블2 B ON A.KEY = B.KEY
FULL OUTER 테이블1 A FULL OUTER JOIN 테이블2 B ON A.KEY = B.KEY
SELF 테이블1 A INNER JOIN 테이블1 B ON A.KEY = B.KEY
CROSS 테이블1 A CROSS JOIN 테이블2 B
NATURAL 테이블1 A NATURAL JOIN 테이블2 B

3. Join 예시

  • INNER JOIN
SELECT * FROM BASKET_A BA
INNER JOIN BASKET_B BB
ON BA.FRUIT = BB.FRUIT
  • LEFT OUTER JOIN
SELECT * FROM BASKET_A BA
LEFT OUTER JOIN BASKET_B BB
ON BA.FRUIT = BB.FRUIT
  • RIGHT OUTER JOIN
SELECT * FROM BASKET_A BA
RIGHT OUTER JOIN BASKET_B BB
ON BA.FRUIT = BB.FRUIT
  • FULL OUTER JOIN
SELECT * FROM BASKET_A BA
FULL OUTER JOIN BASKET_B BB
ON BA.FRUIT = BB.FRUIT
  • SELF JOIN
SELECT A.EMPLOYEE_ID AS ID, A.MANAGER_ID AS M_ID
    ,B.EMPLOYEE_ID AS ID,  B.MANAGER_ID AS M_ID
FROM EMPLOYEE A
INNER JOIN EMPLOYEE B
ON A.EMPLOYEE_ID = B.MANAGER_ID
  • CROSS JOIN
SELECT * FROM CROSS_T1 A
CROSS JOIN CROSS_T2 B
  • NATURAL JOIN
SELECT CATEGORY_ID AS C_ID, PRODUCT_ID AS P_ID
      , CATEGORY_NAME AS C_NAME ,PRODUCT_NAME AS P_NAME
FROM PRODUCTS NATURAL JOIN CATEGORIES

# 참고

반응형