MYSQL JOIN 문의 종류와 사용예시 > MYSQL

본문 바로가기

MYSQL

[질문답변] MYSQL JOIN 문의 종류와 사용예시

profile_image
devmania
23-06-15 15:27 489 0

본문


MySQL에서는 주로 4가지 유형의 JOIN을 사용합니다: INNER JOIN, LEFT JOIN, RIGHT JOIN, FULL JOIN.



1. INNER JOIN

두 테이블에서 일치하는 행만 반환합니다.


SELECT Orders.OrderID, Customers.CustomerName

FROM Orders

INNER JOIN Customers

ON Orders.CustomerID = Customers.CustomerID;


위의 SQL 문은 'Orders' 테이블과 'Customers' 테이블을 'CustomerID'를 기준으로 연결하고, 각각의 'OrderID'와 'CustomerName'을 선택하여 반환합니다.



2. LEFT JOIN (또는 LEFT OUTER JOIN)

왼쪽 테이블의 모든 행과 오른쪽 테이블에서 일치하는 행을 반환합니다. 오른쪽 테이블에서 일치하는 행이 없으면 결과는 NULL 값을 갖습니다.


SELECT Orders.OrderID, Customers.CustomerName

FROM Orders

LEFT JOIN Customers

ON Orders.CustomerID = Customers.CustomerID;


위의 SQL 문은 'Orders' 테이블의 모든 행을 반환하고, 'Customers' 테이블에서 일치하는 행이 있다면 해당 정보와 함께 표시합니다.



3. RIGHT JOIN (또는 RIGHT OUTER JOIN)

오른쪽 테이블의 모든 행과 왼쪽 테이블에서 일치하는 행을 반환합니다. 왼쪽 테이블에서 일치하는 행이 없으면 결과는 NULL 값을 갖습니다.


SELECT Orders.OrderID, Customers.CustomerName

FROM Orders

RIGHT JOIN Customers

ON Orders.CustomerID = Customers.CustomerID;


위의 SQL 문은 'Customers' 테이블의 모든 행을 반환하고, 'Orders' 테이블에서 일치하는 행이 있다면 해당 정보와 함께 표시합니다.



4. FULL JOIN (또는 FULL OUTER JOIN)

두 테이블의 모든 행을 반환합니다. 일치하는 행이 없는 경우 결과는 NULL 값을 갖습니다. 

MySQL에서는 직접적인 FULL JOIN 지원이 없기 때문에, LEFT JOIN과 RIGHT JOIN을 결합하여 사용해야 합니다.


SELECT Orders.OrderID, Customers.CustomerName

FROM Orders

LEFT JOIN Customers

ON Orders.CustomerID = Customers.CustomerID

UNION

SELECT Orders.OrderID, Customers.CustomerName

FROM Orders

RIGHT JOIN Customers

ON Orders.CustomerID = Customers.CustomerID;


위의 SQL 문은 'Orders' 테이블과 'Customers' 테이블의 모든 행을 반환합니다. 어느 한 쪽 테이블에서 일치하는 행이 없다면, 해당 부분은 NULL로 표시됩니다.



각 JOIN 유형은 상황에 따라 적절히 사용되어야 하며, 사용하기 전에 데이터를 잘 이해하고 있어야 합니다.



댓글목록0

등록된 댓글이 없습니다.
게시판 전체검색
다크모드