코딩코딩코딩

[MySQL] JOIN (INNER, OUTER(LEFT, RIGHT)) 조인 본문

MySQL/BasicGrammer

[MySQL] JOIN (INNER, OUTER(LEFT, RIGHT)) 조인

hanshow113 2022. 2. 6. 19:22

Cartesian Product (카테시안 곱)

: JOIN 조건을 주지 않고 FROM절에 콤마(,)로 테이블을 이어붙인 경우 모든 경우의 수가 표현된 테이블이 결과로 출력

SELECT *
FROM Orders, Customers

 

INNER JOIN

SELECT *
FROM Orders INNER JOIN Customers ON Orders.CustomerID = Customers.CustomerID

INNER JOIN 에서 주의해야 할 것은 JOIN 되는 테이블에 모두 있는 데이터에 한해서 JOIN이 수행됨

 

 

OUTER JOIN (LEFT, RIGHT)

INNER JOIN을 제외한 조인은 모두 OUTER JOIN에 속함

-- LEFT JOIN
SELECT *
FROM Orders LEFT JOIN Customers ON Orders.CustomerID = Customers.CustomerID

-- RIGHT JOIN
SELECT *
FROM Orders RIGHT JOIN Cutomers ON Orders.CustomerID = Customers.CustomerID

INNER JOIN에서는 양쪽에 모두 있는 데이터에 한해서 JOIN이 수행됐지만,

LEFT, RIGHT JOIN의 경우에는 각각 왼쪽, 오른쪽에 있는 테이블을 기준으로 JOIN이 수행돼서 기준 테이블의 데이터는 모두 표현되고 거기에 해당되는 JOIN 대상 테이블들의 데이터가 JOIN됨.

만약 JOIN대상 테이블에 기준테이블의 KEY에 해당되는 데이터가 없을 경우 NULL로 표시됨

Comments