Open 2d3k opened 1 year ago
INNER JOIN은 두 개 이상의 테이블에서 일치하는 데이터만 반환하는 조인 유형입니다. 즉, 조인 조건에 부합하는 행들만 결과에 포함됩니다. 두 개의 테이블에서 공통적으로 매칭되는 데이터만 추출되기 때문에 INNER JOIN은 두 테이블 간의 교집합을 반환합니다.
SELECT Orders.order_id, Customers.customer_name
FROM Orders
INNER JOIN Customers ON Orders.customer_id = Customers.customer_id;
OUTER JOIN은 두 개 이상의 테이블에서 일치하지 않는 데이터도 포함하여 결과를 반환하는 조인 유형입니다. 조인 조건에 부합하는 행들뿐만 아니라 일치하지 않는 행들도 결과에 포함됩니다. 따라서 OUTER JOIN은 두 테이블 간의 합집합을 반환합니다. OUTER JOIN은 다시 세 가지 유형으로 나뉩니다: LEFT OUTER JOIN, RIGHT OUTER JOIN, FULL OUTER JOIN.
왼쪽(첫 번째) 테이블의 모든 행들을 포함하며, 오른쪽(두 번째) 테이블과 일치하는 데이터를 포함합니다. 오른쪽 테이블의 일치하지 않는 데이터는 NULL로 채워집니다.
SELECT Customers.customer_id, Customers.customer_name, Orders.order_id
FROM Customers
LEFT OUTER JOIN Orders ON Customers.customer_id = Orders.customer_id;
RIGHT OUTER JOIN(오른쪽 외부 조인) 오른쪽(두 번째) 테이블의 모든 행들을 포함하며, 왼쪽(첫 번째) 테이블과 일치하는 데이터를 포함합니다. 왼쪽 테이블의 일치하지 않는 데이터는 NULL로 채워집니다.
SELECT Customers.customer_id, Customers.customer_name, Orders.order_id
FROM Customers
RIGHT OUTER JOIN Orders ON Customers.customer_id = Orders.customer_id;
FULL OUTER JOIN(전체 외부 조인) 양쪽 테이블의 모든 행들을 포함하며, 서로 일치하는 데이터를 포함합니다. 일치하지 않는 데이터는 NULL로 채워집니다.
SELECT Customers.customer_id, Customers.customer_name, Orders.order_id
FROM Customers
FULL OUTER JOIN Orders ON Customers.customer_id = Orders.customer_id;
Inner join은 쉽게말해서교집합 이라고 표현된다.
SELECT *
FROM EMPLOYEE INNER JOIN DEPARTMENT
ON EMPLOYEE.DepartmentID = DEPARTMENT.DepartmentID;
Outer Join은 조인하는 여러테이블에서 한 쪽에는 데이터가 있고 한 쪽에는 데이터가 없는 경우, 데이터가 있는 쪽 테이블의 내용을 전부 출력하는 방법이다. 즉, 조인 조건에 만족하지 않아도 해당 행을 출력하고 싶을 때 사용할 수 있다. Outer join은 Full Outer Join / Left Outer Join / Right Outer Join 크게 세가지 종류로 나누어 진다.
1) LEFT OUTER JOIN
2) RIGHT OUTER JOIN
3) FULL OUTER JOIN
Inner Join
Outer Join