저장을 습관화

SQL - LEFT JOIN, RIGHT JOIN 본문

공부/데이터베이스

SQL - LEFT JOIN, RIGHT JOIN

ctrs 2023. 12. 9. 20:40

1. LEFT JOIN

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

일치하는 항목이 없다면 오른쪽 테이블에서는 아무것도 가져오지 않는다.

 

오라클에서는 'LEFT OUTER JOIN'이라고 부른다.

 

예시 테이블 Customers)

CustomerID CustomerName ContactName Address City PostalCode Country
1 Alfreds Futterkiste Maria Anders Obere Str. 57 Berlin 12209 Germany
2 Ana Trujillo Emparedados y helados Ana Trujillo Avda. de la Constitución 2222 México D.F. 5021 Mexico
3 Antonio Moreno Taquería Antonio Moreno Mataderos 2312 México D.F. 5023 Mexico

 

예시 테이블 Orders)

OrderID CustomerID EmployeeID OrderDate ShipperID
10308 2 7 1996-09-18 3
10309 37 3 1996-09-19 1
10310 77 8 1996-09-20 2

 

예시)

select Customers.CustomerName, Orders.OrderID
from Customers
left join Orders
on Customers.CustomerID = Orders.CustomerID
order by Customers.CustomerName

 

이하 생략..

 

참고: LEFT JOIN 키워드는 오른쪽 테이블(Orders)에 일치하는 항목이 없더라도

왼쪽 테이블(Customers)의 모든 레코드를 반환한다.

 

 

2. RIGHT JOIN

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

일치하는 항목이 없다면 왼쪽 테이블에서는 아무것도 가져오지 않는다.

 

오라클에서는 'RIGHT OUTER JOIN'이라고 부른다.

 

예시 테이블 Orders)

OrderID CustomerID EmployeeID OrderDate ShipperID
10308 2 7 1996-09-18 3
10309 37 3 1996-09-19 1
10310 77 8 1996-09-20 2

 

예시 테이블 Employees)

EmployeeID LastName FirstName BirthDate Photo
1 Davolio Nancy 12/8/1968 EmpID1.pic
2 Fuller Andrew 2/19/1952 EmpID2.pic
3 Leverling Janet 8/30/1963 EmpID3.pic

 

예시)

select Orders.OrderID, Employees.LastName, Employees.FirstName
from Orders
right join Employees
on Orders.EmployeeID = Employees.EmployeeID
order by Orders.OrderID

이하 생략..

 

참고: RIGHT JOIN 키워드는 왼쪽 테이블(Orders)에 일치하는 항목이 없더라도

오른쪽 테이블(Employees)의 모든 레코드를 반환한다.

'공부 > 데이터베이스' 카테고리의 다른 글

RDBMS와 ORDBMS  (0) 2024.01.08
SQL - FULL JOIN, SELF JOIN  (0) 2023.12.09
SQL - INNER JOIN  (0) 2023.12.08
SQL - JOINS  (0) 2023.12.08
SQL - ANY, ALL  (0) 2023.12.07