: 두 개의 테이블을 서로 묶어서 하나의 결과를 만들어 내는 것
INNER JOIN
: 두 테이블을 조인할 때,두 테이블에 모두
지정한 열의 데이터가 있어야 함OUTER JOIN
: 두 테이블을 조인할 때,1개의 테이블에만
데이터가 있어도 결과가 나옴CROSS JOIN
: 한쪽 테이블의모든 행
과 다른 쪽 테이블의모든 행
을 조인하는 기능SELF JOIN
: 자신이 자신과 조인한다는 의미로,1개의 테이블만 사용
→ USER_ORDER
NAME | BUY_PRODUCT |
---|---|
kim | macbook |
lee | Yuna's Haptic |
choi | Galaxy S2 |
park | airpod |
→ APPLE_PRODUCT
PRODUCT_NAME | PRICE |
---|---|
macbook | 3,300,000 |
iPad | 800,000 |
iPhone | 1,400,000 |
airpod | 320,000 |
→ 두 테이블의 교집합만 출력되는 조인
SELECT *
FROM USER_ORDER UO
INNER JOIN APPLE_PRODUCT AP
ON UO.BUY_PRODUCT = AP.PRODUCT_NAME
NAME | BUY_PRODUCT | PRICE |
---|---|---|
kim | macbook | 3,300,000 |
park | airpod | 320,000 |
→ 왼쪽 테이블의 모든 값이 출력되는 조인
SELECT *
FROM USER_ORDER UO
LEFT OUTER JOIN APPLE_PRODUCT AP
ON UO.BUY_PRODUCT = AP.PRODUCT_NAME
NAME | BUY_PRODUCT | PRICE |
---|---|---|
kim | macbook | 3,300,000 |
lee | Yuna's Haptic | NULL |
choi | Galaxy S2 | NULL |
park | airpod | 320,000 |
→ 오른쪽 테이블의 모든 값이 출력되는 조인
SELECT *
FROM USER_ORDER UO
RIGHT OUTER JOIN APPLE_PRODUCT AP
ON UO.BUY_PRODUCT = AP.PRODUCT_NAME;
PRODUCT_NAME | PRICE | NAME |
---|---|---|
macbook | 3,300,000 | kim |
iPad | 800,000 | NULL |
iPhone | 1,400,000 | NULL |
airpod | 320,000 | park |
SELECT *
FROM USER_ORDER UO
FULL OUTER JOIN APPLE_PRODUCT AP
ON UO.BUY_PRODUCT = AP.PRODUCT_NAME;
→ 왼쪽 또는 오른쪽 테이블의 모든 값이 출력되는 조인
NAME | BUY_PRODUCT | PRICE |
---|---|---|
kim | macbook | 3,300,000 |
lee | Yuna's Haptic | NULL |
choi | Galaxy S2 | NULL |
NULL | iPad | 800,000 |
NULL | iPhone | 1,400,000 |
park | airpod | 320,000 |
- 한쪽 테이블의 모든 행과 다른 쪽 테이블의 모든 행을
조인
시키는 기능 카티션 곱
이라고도 함
SELECT {열 목록}
FROM {첫 번째 테이블}
CROSS JOIN {두 번째 테이블};
→ 자기 자신과 조인
SELECT {열 목록}
FROM {테이블}
INNER JOIN {테이블}
ON {조건}
WHERE {조건}