개발팁/DB

100% 쉽게 이해하는 SQL JOIN의 종류와 사용법

후앤하 2023. 1. 20. 18:51
반응형

SQL에는 여러 테이블의 데이터를 결합하는 데 사용할 수 있는 여러 유형의 조인이 있습니다.

INNER JOIN: 이 유형의 조인은 두 테이블에서 일치하는 값을 가진 행만 반환합니다. 예를 들어 다음 SQL 문은 "customers" 테이블에 "customer_id" 열과 일치하는 값이 있는 "orders" 테이블의 모든 행을 반환합니다.

 

SELECT *
FROM orders
INNER JOIN customers
ON orders.customer_id = customers.customer_id;

 

LEFT JOIN: 이 유형의 조인은 왼쪽 테이블(조인의 첫 번째 테이블)의 모든 행과 오른쪽 테이블의 일치하는 행을 반환합니다. 일치하는 항목이 없으면 결과에 오른쪽 테이블의 열에 대한 NULL 값이 포함됩니다. 예를 들어 다음 SQL 문은 "customer_id" 열에 대해 "customers" 테이블의 일치하는 행과 함께 "orders" 테이블의 모든 행을 반환합니다. 일치하는 항목이 없으면 결과에 "customers" 테이블의 열에 대한 NULL 값이 포함됩니다.

 

SELECT *
FROM orders
LEFT JOIN customers
ON orders.customer_id = customers.customer_id;

 

RIGHT JOIN: 이 유형의 조인은 LEFT JOIN과 유사하지만 오른쪽 테이블(조인의 두 번째 테이블)의 모든 행과 왼쪽 테이블의 일치하는 행을 반환합니다. 일치하는 항목이 없으면 결과에 왼쪽 테이블의 열에 대한 NULL 값이 포함됩니다.

 

SELECT *
FROM orders
RIGHT JOIN customers
ON orders.customer_id = customers.customer_id;

 

FULL OUTER JOIN: 이 유형의 조인은 두 테이블의 모든 행과 두 테이블의 일치하는 행을 반환합니다. 일치하는 항목이 없으면 결과에 일치하지 않는 테이블의 열에 대한 NULL 값이 포함됩니다.

 

SELECT *
FROM orders
FULL OUTER JOIN customers
ON orders.customer_id = customers.customer_id;

 

CROSS JOIN: 이 유형의 조인은 두 테이블의 데카르트 곱을 반환합니다. 즉, 두 테이블에서 가능한 모든 행 조합을 반환합니다. 이러한 유형의 조인을 "데카르트 조인"이라고도 합니다.

 

SELECT *
FROM orders
CROSS JOIN customers;

 

사용 사례와 관련된 테이블의 크기에 따라 일부 유형의 조인이 다른 조인보다 더 효율적일 수 있다는 점은 주목할 가치가 있습니다. 다양한 조인 유형을 테스트하고 특정 쿼리에 가장 적합한 유형을 선택하는 것이 좋습니다.

반응형