데이터 분석/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
# 참고
반응형