[PostgreSQL] 테이블 조인
카테고리: SQL
태그: Data Engineering
인프런에 있는 권철민님의 데이터 분석 SQL Fundamentals 강의를 듣고 정리한 내용입니다.
🐘 테이블 JOIN
- Table1과 Table2를 id로 join
- join column 기준 1:m relation이면 join 결과는 m집합의 레벨 유지 (id=1 행이 두 개)
- JOIN 여러 번 할 때 중요
INNER JOIN
SELECT
A.CUSTOMER_ID,
A.NAME,
A.EMAIL,
B.AMOUNT,
B.PAYMENT_DATE
FROM
CUSTOMER A JOIN PAYMENT B
ON A.CUSTOMER_ID = B.CUSTOMER_ID;
- JOIN의 default 값은 INNER JOIN
LEFT(RIGHT) OUTER JOIN
- 겹치지 않아도 살려둬라 (B의 속성은 NULL로)
SELECT
A.CUSTOMER_ID,
A.NAME,
A.EMAIL,
B.AMOUNT,
B.PAYMENT_DATE
FROM
CUSTOMER A LEFT JOIN PAYMENT B -- or RIGHT JOIN
ON A.CUSTOMER_ID = B.CUSTOMER_ID;
FULL OUTER JOIN
- 겹치는 것만 포개고 나머지 전부 살려둬라
SELECT
A.CUSTOMER_ID,
A.NAME,
A.EMAIL,
B.AMOUNT,
B.PAYMENT_DATE
FROM
CUSTOMER A FULL OUTER JOIN PAYMENT B
ON A.CUSTOMER_ID = B.CUSTOMER_ID;
SELF JOIN
SELECT
E.FIRST_NAME || ' ' || E.LAST_NAME EMPLOYEE,
M.FIRST_NAME || ' ' || M.LAST_NAME MANAGER
FROM
EMPLOYEE E LEFT JOIN EMPLOYEE M
ON M.EMPLOYEE_ID = E.MANAGER_ID;
- 같은 테이블끼리 조인할 때 사용
CROSS JOIN
- Cartesian Product
SELECT *
FROM color CROSS JOIN size;
댓글 남기기