2d3k / CS-Study

기본을 소홀히 하지 말자!!
0 stars 1 forks source link

[Database] Join #42

Open 2d3k opened 1 year ago

2d3k commented 1 year ago

Inner Join

Outer Join

2d3k commented 1 year ago

INNER JOIN(내부 조인)

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은 두 테이블 간의 합집합을 반환합니다. OUTER JOIN은 다시 세 가지 유형으로 나뉩니다: LEFT OUTER JOIN, RIGHT OUTER JOIN, FULL OUTER JOIN.

LEFT 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;
hyeonayou commented 1 year ago

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