본문 바로가기
프로그래밍/MySql

[MySql] Join 정리

by 시간많은백수 2023. 9. 2.
반응형

✔️Join이란?

JOIN은 관계형 데이터베이스에서 여러 테이블을 연결하여 하나의 결과 집합을 생성하는 작업입니다.
주로 테이블 간의 관계를 활용하여 데이터를 가져오고 결합합니다.

 

 

예시 테이블 1 (Customers 테이블)

CustomerID CustomerName
1 A
2 B
3 C

 

예시 테이블 2 (Orders 테이블)

OrderID CustomerID OrderDate
101 1 2021-01-15
102 2 2021-02-20
103 1 2021-03-25

 

💡INNER JOIN

INNER JOIN은 두 테이블 간에 일치하는 데이터를 반환합니다. 예를 들어, Customers 테이블과 Orders 테이블에서 고객의 주문을 검색하려면 다음과 같이 INNER JOIN을 사용할 수 있습니다

 

1
2
3
4
SELECT Orders.OrderID, Customers.CustomerName
FROM Orders
INNER JOIN Customers
ON Orders.CustomerID = Customers.CustomerID;
cs

 

OrderID CustomerName
101 A
102 B
103 A

 

💡LEFT JOIN

 

LEFT JOIN은 왼쪽 테이블의 모든 행과 오른쪽 테이블에서 일치하는 행을 반환합니다. 일치하지 않는 경우 NULL 값이 표시됩니다. 예를 들어, Customers 테이블의 모든 고객과 그들의 주문을 검색하려면 다음과 같이 LEFT JOIN을 사용할 수 있습니다

 

1
2
3
4
SELECT Customers.CustomerName, Orders.OrderID
FROM Customers
LEFT JOIN Orders
ON Customers.CustomerID = Orders.CustomerID;
cs

 


CustomerName OrderID
A 103
A 101
B 102
C Null

 

💡RIGHT JOIN

 

RIGHT JOIN은 RIGHT JOIN은 오른쪽 테이블의 모든 행과 왼쪽 테이블에서 일치하는 행을 반환합니다. LEFT JOIN과 반대로 왼쪽 테이블의 데이터가 없는 경우에도 NULL 값이 표시됩니다. 예를 들어, Orders 테이블의 모든 주문과 해당 고객 정보를 검색하려면 다음과 같이 RIGHT JOIN을 사용할 수 있습니다

 

1
2
3
4
SELECT Customers.CustomerName, Orders.OrderID
FROM Customers
RIGHT JOIN Orders
ON Customers.CustomerID = Orders.CustomerID;
cs

 


CustomerName OrderID
A 101
B 102
A 103

 

💡FULL OUTER JOIN

 

FULL OUTER JOIN은 양쪽 테이블의 모든 행을 반환합니다. 즉, 양쪽 테이블에서 일치하는 행이 있는 경우 해당 값이 반환되고, 한쪽 테이블에서만 일치하는 경우에도 해당 값이 반환됩니다. NULL 값이 표시되지 않습니다. 예를 들어, 모든 고객과 모든 주문을 검색하려면 다음과 같이 FULL JOIN을 사용할 수 있습니다

(Mysql에서는 FULL OUTER JOIN을 지원하지 않기때문에 UNION을 사용하였습니다.)

 

1
2
3
4
5
6
7
8
9
10
11
SELECT Customers.CustomerName, Orders.OrderID
FROM Customers
LEFT JOIN Orders ON Customers.CustomerID = Orders.CustomerID
 
UNION ALL
 
SELECT Customers.CustomerName, Orders.OrderID
FROM Customers
RIGHT JOIN Orders ON Customers.CustomerID = Orders.CustomerID
WHERE Customers.CustomerID IS NULL;
 
 
cs

 

CustomerName OrderID
A 103
A 101
B 102
C Null

 

 

반응형

'프로그래밍 > MySql' 카테고리의 다른 글

[MySql] MySql 설치 및 환경변수 설정  (0) 2023.10.26
[MySql] ORM이란?  (0) 2023.09.27
[MySql] 기본 문법 정리  (0) 2023.08.31