반응형
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
# 참고
반응형
'데이터 분석 > SQL' 카테고리의 다른 글
[SQL] 5. 집합 연산자 (0) | 2021.04.19 |
---|---|
[SQL] 4. 분석 함수 (0) | 2021.04.05 |
[SQL] 3. 데이터 집계(Group by) (0) | 2021.04.01 |
[SQL] 1. 데이터 조회와 필터링 (0) | 2021.03.23 |
Postgresql 설치(postGIS 포함) (0) | 2021.03.16 |