logo

[MySQL] JOIN

 

JOIN의 기본

 

JOIN 이란?

"JOIN"은 두 테이블이나 여러 테이블에서 관련된 데이터를 결합하기 위해 사용되는 SQL 연산자입니다. 이를 통해 복수의 테이블에 분산되어 저장된 데이터를 하나의 결과로 조회할 수 있습니다.

 

INNER JOIN 사용하기

INNER JOIN은 두 테이블에서 일치하는 데이터가 있는 경우에만 결과를 반환합니다. 예를 들어, 고객 테이블과 주문 테이블이 있을 경우, 두 테이블에서 고객 ID가 일치하는 데이터만 조회하려면 다음과 같이 INNER JOIN을 사용합니다.

SELECT customers.name, orders.order_date
FROM customers
INNER JOIN orders ON customers.customer_id = orders.customer_id;
 

LEFT JOIN과 RIGHT JOIN의 차이점

  • LEFT JOIN (또는 LEFT OUTER JOIN): 왼쪽 테이블의 모든 레코드와 오른쪽 테이블에서 일치하는 레코드를 반환합니다. 일치하는 레코드가 없는 경우, 왼쪽 테이블의 결과는 나오지만 오른쪽 테이블의 결과는 NULL로 표시됩니다.
  • RIGHT JOIN (또는 RIGHT OUTER JOIN): LEFT JOIN의 반대 개념으로, 오른쪽 테이블의 모든 레코드와 왼쪽 테이블에서 일치하는 레코드를 반환합니다.
 

CROSS JOIN 설명

CROSS JOIN은 첫 번째 테이블의 각 레코드를 두 번째 테이블의 모든 레코드와 결합하여 모든 가능한 조합을 생성합니다. 이는 매우 많은 결과를 초래할 수 있으므로 사용시 주의가 필요합니다.

 

다양한 JOIN 방법

 

NATURAL JOIN 사용 예시

NATURAL JOIN은 두 테이블 간에 이름이 같은 모든 열을 기준으로 JOIN을 수행합니다. 예를 들어, 고객 테이블과 주문 테이블이 customer_id라는 같은 이름의 열을 가지고 있다면:

SELECT *
FROM customers
NATURAL JOIN orders;

이 명령은 customer_id를 기준으로 자동으로 JOIN 조건을 생성합니다.

 

USING 절 활용하기

USING 절은 JOIN할 때 두 테이블에서 이름이 같은 열을 지정하여 JOIN 조건으로 사용합니다. NATURAL JOIN과 유사하지만, 어떤 열을 기준으로 JOIN할지 명시적으로 지정할 수 있습니다.

SELECT *
FROM customers
JOIN orders USING(customer_id);
 

ON 절과 조건 활용

ON 절은 두 테이블을 JOIN할 때 사용되는 기준(조건)을 지정하는 데 사용됩니다. 이 절은 두 테이블 간의 관계를 정의할 때 매우 유연합니다.

SELECT customers.name, orders.order_date
FROM customers
JOIN orders ON customers.customer_id = orders.customer_id AND orders.order_date >= '2023-01-01';

이 예에서는 고객 ID가 일치하며, 2023년 1월 1일 이후에 주문된 데이터만 조회합니다.

Previous
SELECT
Next
INSERT