SQLShack (한국어)

이 기사에서는 SQL에 대해 학습합니다. 다중 조인 개념은 그림으로 설명되는 매우 간단한 예제로 학습 내용을 강화합니다. 관계형 데이터베이스에서 데이터는 테이블에 저장됩니다. 의심 할 여지없이 대부분의 경우 여러 테이블의 데이터를 결합하여 구성된 결과 집합이 필요합니다. 조인을 사용하면 두 개 이상의 테이블에서 데이터를 결합 할 수 있으므로 여러 테이블에서 데이터를 쉽게 검색 할 수 있도록 테이블의 데이터를 조인 할 수 있습니다. SQL Server에 얼마나 많은 유형의 조인이 존재하는지 스스로에게 물어볼 수 있습니다. 대답은 SQL Server에 존재하는 네 가지 주요 조인 유형이 있다는 것입니다. 먼저 벤 다이어그램 그림을 사용하여 간략하게 설명하겠습니다.

  • 내부 조인은 두 테이블에서 일치하는 행을 반환합니다.

  • 왼쪽 조인은 왼쪽 테이블의 모든 행을 반환합니다.

  • 오른쪽 조인은 오른쪽 테이블의 모든 행을 반환합니다.

  • 전체 조인은 두 테이블의 전체 행을 반환합니다.

지식이 부족한 경우 SQL Server의 SQL 조인 개념에 대한 자세한 내용은 SQL 조인 유형 개요 및 자습서 문서를 참조하십시오.

SQL 조인 유형에 대한 간단한 설명이 끝나면 다중 조인을 살펴 보겠습니다.

SQL 다중 결합이란 무엇입니까?

다중 결합은 다음과 같이 설명 할 수 있습니다. 다중 조인은 두 번 이상 사용되는 동일하거나 다른 조인 유형을 포함하는 쿼리입니다. 따라서 관계형 데이터베이스 문제를 극복하기 위해 여러 데이터 테이블을 결합 할 수 있습니다.

예시 시나리오

Green-Tree 회사는 새해를 맞아 새로운 캠페인을 시작하고 온라인 고객에게 다양한 제안을했습니다. 캠페인의 결과로 일부 제안을 판매로 전환하는 데 성공했습니다. 다음 예에서는 Green-Tree 회사의 새해 캠페인 데이터 세부 정보를 알아 봅니다.

회사는 이러한 캠페인 데이터 세부 정보를 다음 표에 저장합니다. 이제 다음 쿼리를 통해 이러한 테이블을 만들고 더미 데이터로 채울 것입니다.

SQL 다중 조인 작동 방식

비즈니스 문제 : 올해 새해에 관심이 있었던 고객은 누구입니까? 캠페인?

이 질문에 답하려면 일부 고객이 이메일 오퍼를받지 못했고 일부 오퍼를 판매로 전환 할 수 없기 때문에 모든 테이블에 대해 일치하는 행을 찾아야합니다. 다음 벤 다이어그램은 우리가 필요로하는 일치하는 행을 파악하는 데 도움이됩니다. 즉,이 쿼리의 결과는 쿼리에있는 모든 테이블의 교차 행이어야합니다. 회색 영역은 벤 다이어그램에서 다음 행을 지정합니다.

SQL 다중 조인 접근 방식은 온라인 고객과 함께하는 데 도움이 될 것입니다. , 주문 및 판매 테이블. 벤 다이어그램에서 볼 수 있듯이 모든 테이블의 행을 일치시켜야합니다. 이러한 이유로 모든 테이블을 내부 조인 절로 결합합니다. 다음 쿼리는 원하는 결과 집합을 반환하고 질문에 답합니다.

1
2
3
4
5
6
7
8

select customerName, customercity, customermail, salestotal
from onlinecustomers AS oc
INNER JOIN
orders AS o
ON oc.customerid = o.customerid
INNER JOIN
sales AS s
ON o.orderId = s.orderId

먼저 쿼리를 분석합니다. onlinecustomers와 주문 테이블 사이에있는 내부 조인 절은이 두 테이블 사이에서 일치하는 행을 파생했습니다. 판매 테이블을 결합하는 두 번째 내부 조인 절은 이전 결과 집합에서 일치하는 행을 파생했습니다. 다음 색상의 테이블 그림은 쿼리에서 일치하는 조인 된 테이블 데이터를 이해하는 데 도움이됩니다. 노란색 행은 온라인 고객과 주문간에 일치하는 데이터를 지정합니다. 반면 판매 테이블에는 파란색 행만 존재하므로 쿼리 결과는 파란색 행이됩니다.

쿼리 결과는 다음과 같습니다.

SQL 다중 조인에서 다양한 조인 유형 사용

비즈니스 문제 : 판매로 전환 할 수없는 오퍼는 무엇입니까?

단일 쿼리에서 다양한 유형의 조인을 사용하여 다양한 관계형 데이터베이스 문제를 극복 할 수 있습니다.이 예에서는 onlinecustomers 테이블과 일치하는 orders 테이블의 모든 행이 필요합니다. 반면에 이러한 행은 판매 테이블에 없습니다. 다음 벤 다이어그램은 우리가 필요로하는 일치하는 행을 파악하는 데 도움이됩니다. 회색 영역은 쿼리의 출력이 될 행을 나타냅니다.

첫 번째 단계에서 내부 조인은 onlinecustomers와 orders 테이블 사이에 일치하는 모든 행을 반환하기 때문에 내부 조인 절을 통해 onlinecustomers 및 orders 테이블입니다. 두 번째 단계에서는 왼쪽 조인을 통해 orders 테이블을 sales 테이블에 결합한 다음 sales 테이블에 저장된 행을 제거해야하므로 null 값을 필터링합니다.

1
2
3
4
5
6
7
8
9

SELECT customerName, customercity, customermail, ordertotal, salestotal
from onlinecustomers AS c
INNER JOIN
orders AS o
ON c.customerid = o.customerid
LEFT JOIN
sales AS s
ON o.orderId = s.orderId
WHERE s.salesId IS NULL

쿼리 결과는 다음과 같이 표시됩니다.

퀴즈

Q 사용 : 아래 벤 다이어그램에 따라 적절한 쿼리를 생성하십시오.

답 : 배운 것처럼 전체 조인은 결합 된 테이블의 모든 행을 반환합니다. 답변 된 쿼리는 다음과 같습니다.

1
2
3
4
5
6
7
8

select customerName, customercity, customermail, ordertotal, salestotal
from onlinecustomers as c
FULL JOIN
주문 AS o
ON c.customerid = o.customerid
FULL JOIN
판매 AS s
ON o.orderId = s.orderId

결론

이 기사에서는 SQL 다중 조인 접근 방식에 초점을 맞추고 자세한 예제를 통해 배웠습니다. 다중 조인을 사용하면 관계형 데이터베이스 시스템의 다양한 문제를 극복 할 수 있도록 두 개 이상의 테이블을 결합 할 수 있습니다. 또한 단일 쿼리에서 서로 다른 조인 유형을 사용하는 방법을 살펴 보았습니다.

  • 작성자
  • 최근 게시물
Esat Erkec은 소프트웨어 개발자로 8 년 이상 전에 경력을 시작한 SQL Server 전문가. 그는 SQL Server Microsoft Certified Solutions Expert입니다.
대부분의 경력은 SQL Server 데이터베이스 관리 및 개발에 집중되었습니다. 그의 현재 관심 분야는 데이터베이스 관리 및 비즈니스 인텔리전스입니다. LinkedIn에서 찾을 수 있습니다.
Esat Erkec의 모든 게시물보기

Esat Erkec의 최신 게시물 (전체보기)
  • SQL 프로그래밍 시작하기-2021 년 2 월 3 일
  • 실행을 읽는 방법 모든 세부 사항이 포함 된 계획-2021 년 1 월 28 일
  • SQL SELECT TOP 문 개요 및 예-2021 년 1 월 25 일

Leave a Reply

답글 남기기

이메일 주소를 발행하지 않을 것입니다. 필수 항목은 *(으)로 표시합니다