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;
사용 사례와 관련된 테이블의 크기에 따라 일부 유형의 조인이 다른 조인보다 더 효율적일 수 있다는 점은 주목할 가치가 있습니다. 다양한 조인 유형을 테스트하고 특정 쿼리에 가장 적합한 유형을 선택하는 것이 좋습니다.
'개발팁 > DB' 카테고리의 다른 글
2배이상 빨라지는 SQL 쿼리 튜닝 노하우 (0) | 2023.01.20 |
---|---|
mongoDB 사용의 장단점에 대해 상세히 알려줄께요 (0) | 2023.01.20 |