넓고 얕은 데이터베이스 지식/SQL

SQL - JOIN(INNER, LEFT RIGHT OUTER, FULL)

팡펑퐁 2023. 4. 27. 21:23
728x90

JOIN

두 개 이상의 테이블 사이에 관련된 열을 기반으로 행을 결합하는 데 사용한다.

 

 

Orders

OrderID CustomerID OrderDate
10308 2 1996-09-18
10309 37 1996-09-19
10310 77 1996-09-20

 

Customers

CustomerID ustomerName ContactName Country
1 Alfreds Futterkiste Maria Anders Germany
2 Ana Trujillo Emparedados y helados Ana Trujillo Mexico
3 Antonio Moreno Taquería Antonio Moreno Mexico
  • "Orders" 테이블의 "CustomerID" 열은 "Customers" 텡블의 "CustomerID"를 참조한다. 위 두 테이블 간의 관계는 "CustomerID"열을 통해 이루어진다.

 

-- INNER JOIN으로 조인하기
SELECT Orders.OrderID, Customers.CustomerName, Orders.OrderDate
FROM Orders
INNER JOIN Customers ON Orders.CustomerID=Customers.CustomerID;

 

결과

 

OrderID CustomerName OrderDate
10308 Ana Trujillo Emparedados y helados 9/18/1996

 

 

다양한 유형의 SQL JOIN

(INNER) JOIN

  • 두 테이블에서 공통으로 일치하는 (값이 있는) 레코드를 반환한다.

LEFT (OUTER) JOIN 

  • 왼쪽 테이블의 모든 레코드와 오른쪽 테이블의 일치하는 레코드를 반환한다.

RIGHT (OUTER) JOIN 

  • 오른쪽 테이블의 모든 레코드와 왼쪽 에티블의 일치하는 레코드를 반환한다.

FULL OUTER JOIN

  • 왼쪽 오른쪽의 모든 레코드를 반환한다.
728x90