기본 콘텐츠로 건너뛰기 보완적인 콘텐츠로 건너뛰기

Join

join 접두사는 로드한 테이블을 기존의 명명된 테이블이나 마지막으로 생성한 데이터 테이블과 조인합니다.

데이터 조인의 효과는 대상 테이블에 아직 없는 추가 필드 또는 속성 집합으로 대상 테이블을 확장하는 것입니다. 소스 데이터 집합과 대상 테이블 간의 공통 필드 이름은 새로 들어오는 레코드를 연결하는 방법을 알아내는 데 사용됩니다. 이를 일반적으로 "자연 조인(natural join)"이라고 합니다. Qlik 조인 작업은 조인 연결의 고유성과 사용된 조인 유형에 따라 결과 대상 테이블의 레코드 수가 시작할 때보다 많거나 적어질 수 있습니다.

video thumbnail

조인 유형

조인에는 네 가지 유형이 있습니다.

  • Left join

  • Inner join

  • Outer join

  • Right join

다양한 유형의 조인 작업의 예시 결과 집합

각 작업 후 데이터 테이블의 전후 표현이 포함된 다양한 유형의 조인 작업의 예시 결과 집합입니다. 입력은 대상 테이블과 들어오는 데이터 집합으로 구성됩니다. 대상 테이블에는 'Trade ID' 및 'Asset Class' 필드에 대한 두 개의 행 항목이 있는 두 개의 열이 있습니다. 들어오는 데이터에는 'Trade ID' 및 'Exchange' 필드에 대한 두 개의 행 항목이 있는 두 개의 열이 있습니다. Left Join은 초기 대상 테이블을 유지하고 'Exchange' 행 항목 중 하나를 추가하는 것을 제외하고 모두 비어 있는 세 번째 열을 추가합니다. Inner Join은 하나의 Trade ID 행과 'Exchange' 행 항목에 대한 세 번째 열이 있는 테이블을 만듭니다. Outer Join은 대상 테이블을 유지하고 들어오는 데이터 집합의 두 번째 행이 추가되는 세 번째 행을 따라 세 번째 열을 추가합니다. Right Join은 대상 테이블의 두 번째 행 항목을 제거하고 들어오는 데이터 집합의 두 번째 행 항목의 정보로 바꾸어 그 과정에서 세 번째 열을 추가합니다.

Left join

Left join은 가장 일반적인 조인 유형입니다. 예를 들어 트랜잭션 데이터 집합이 있고 이를 참조 데이터 집합과 결합하려는 경우 일반적으로 Left Join을 사용합니다. 트랜잭션 테이블을 먼저 로드한 다음 이미 로드된 트랜잭션 테이블에 Left Join 접두사를 통해 조인하면서 참조 데이터 집합을 로드합니다. Left Join은 모든 트랜잭션을 그대로 유지하고 일치하는 항목이 있는 보충 참조 데이터 필드를 추가합니다.

Left join

Left join 중에 발생하는 데이터 조합을 높은 수준에서 요약한 다이어그램입니다.

Inner join

일치하는 연결이 있는 결과에만 관심이 있는 두 개의 데이터 집합이 있는 경우 Inner Join을 사용하는 것이 좋습니다. 이렇게 하면 일치하는 항목이 없는 경우 로드된 소스 데이터와 대상 테이블 모두에서 모든 레코드가 제거됩니다. 결과적으로 조인 작업이 수행되기 전보다 대상 테이블에 더 적은 레코드가 남을 수 있습니다.

Inner join

Inner join 중에 발생하는 데이터 조합을 높은 수준에서 요약한 다이어그램입니다.

Outer join(기본값)

대상 레코드와 들어오는 모든 레코드를 모두 유지해야 하는 경우 Outer Join을 사용합니다. 일치하는 항목이 없는 경우 각 레코드 집합은 계속 유지되지만 조인의 반대쪽 필드는 채워지지 않은 상태(null)로 유지됩니다.

유형 키워드를 생략하면 기본 조인 유형은 Outer join입니다.

Outer join

Outer join 중에 발생하는 데이터 조합을 높은 수준에서 요약한 다이어그램입니다.

Right join

이 조인 유형은 로드하려는 모든 레코드를 유지하면서 조인의 대상이 되는 테이블의 레코드를 들어오는 레코드에 연결 일치가 있는 레코드로만 줄입니다. 이것은 이미 미리 로드된 레코드 테이블을 필요한 하위 집합으로 줄이는 수단으로 때때로 사용되는 틈새 조인 유형입니다.

Right join

Right join 중에 발생하는 데이터 조합을 높은 수준에서 요약한 다이어그램입니다.

Cross join

정보 메모조인 작업의 소스와 대상 간에 공통된 필드 이름이 없는 경우 조인은 모든 행의 데카르트 곱(cartesian product)을 생성합니다. 이를 "크로스 조인(cross join)"이라고 합니다.

"크로스 조인" 작업의 예시 결과 집합

크로스 조인 작업(모든 유형의 조인 작업을 포함할 수 있음) 후의 입력 데이터와 출력의 전후 비교입니다. 입력은 대상 테이블과 들어오는 데이터 집합입니다. 대상 테이블은 두 개의 행 항목이 있는 세 개의 열로 구성됩니다. 열은 'Trade ID', 'Base Currency' 및 'Amount'입니다. 들어오는 데이터 집합에는 두 개의 열('Trade Currency' 및 'Rate')과 두 개의 행 항목이 있습니다. 결과 테이블에는 'Trade ID', 'Base Currency', 'Amount', 'Target Currency' 및 'Rate'의 다섯 개 열이 있습니다. 모든 데이터를 결합하는 네 개의 행 항목이 있습니다. 각 'Trade ID' 항목에는 다른 필드에 다른 데이터가 있는 두 개의 행이 있습니다.

구문 및 인수

[inner | outer | left | right ]Join [ (tablename ) ]( loadstatement | selectstatement )

인수
인수 설명
tablename 로드된 테이블과 비교할 명명된 테이블입니다.
loadstatement또는 selectstatement 로드된 테이블에 사용되는 LOAD 또는 SELECT 문입니다.

관련 주제

다음 주제는 이 함수를 사용하는 데 도움이 될 수 있습니다.

관련 주제
주제 설명
Join 및 Keep을 사용한 테이블 결합 이 주제에서는 데이터 집합을 "조인(joining)"하고 "유지(keeping)"하는 개념에 대해 자세히 설명합니다.
Keep Keep 로드 접두사는 Join 접두사와 유사하지만 소스 및 대상 데이터 집합을 결합하지 않습니다. 대신 채택된 작업 유형(inner, outer, left 또는 right)에 따라 각 데이터 집합을 자릅니다.

로드 스크립트 예 - Left join

Left join은 기본(대상) 테이블의 모든 레코드를 유지하고 두 번째(소스) 테이블에서 일치하는 데이터를 추가합니다. 소스에 일치하는 항목이 없으면 기본 테이블의 레코드가 계속 표시되지만 소스 테이블의 필드는 비어 있습니다.

로드 스크립트 예 - Inner join

Inner join은 두 테이블 모두에 존재하는 레코드만 유지합니다(일치하는 필드 값 기준).

로드 스크립트 예 - Outer join

Outer join은 두 테이블의 모든 레코드를 유지합니다. 일치하는 항목이 없으면 필드는 비워 둡니다.

로드 스크립트 예 - Right join

Right join은 소스 테이블의 모든 레코드를 유지하고 대상 테이블에서 일치하는 정보를 추가합니다. 대상 테이블에 일치하는 항목이 없으면 해당 필드는 비어 있습니다.

문제 해결 - Cross join

이 페이지가 도움이 되었습니까?

이 페이지 또는 해당 콘텐츠에서 오타, 누락된 단계 또는 기술적 오류와 같은 문제를 발견하면 알려 주십시오!