유형

이 페이지에서는 조인의 일부인 type 매개변수를 설명합니다.

type측정기준, 필터, 매개변수 유형 문서 페이지에 설명된 측정기준의 일부로 사용할 수도 있습니다.

type측정 유형 문서 페이지에 설명된 측정의 일부로 사용할 수도 있습니다.

type대시보드 매개변수 문서 페이지에 설명된 대시보드 필터의 일부로 사용할 수도 있습니다.

typetype(LookML 대시보드의 경우) 매개변수 문서 페이지에 설명된 대시보드 요소의 일부로 사용할 수도 있습니다.

용도

Explore: view_name {
join: view_name_2 {
type: inner
}
}
계층 구조
type
기본값
left_outer

결제 가능
조인 유형(cross, full_outer, inner, left_outer)

특수 규칙
left_outer 이외의 type를 사용할 때 always_join를 사용하여 결과 행에 조인 제한이 포함되도록 할 수 있습니다.

정의

type를 사용하면 실행하려는 조인 유형을 설명할 수 있습니다. 가능한 조인 유형 값은 다음 이미지에 나와 있습니다.

가능한 조인 유형 값은 이 페이지의 다음 섹션에서 설명합니다.

left_outer (기본값)

Looker에서 가장 일반적인 조인 유형은 left_outer입니다. 자주 사용하는 이유는 이 페이지의 left_outer 조인 유형이 일반적으로 선호 섹션에 설명되어 있습니다. SQL에서 LEFT JOIN으로 알 수 있습니다. 이 type를 사용하면 탐색의 모든 행이 포함되고 가능한 경우 조인된 뷰의 데이터가 가져옵니다.



full_outer

full_outer 조인 유형(SQL에서 FULL OUTER JOIN으로 알 수 있음)에는 다른 뷰의 상응하는 데이터가 없더라도 탐색 및 조인된 뷰의 모든 행이 포함됩니다. MySQL에서는 전체 외부 조인이 지원되지 않습니다.



inner

inner 조인 유형(SQL에서 JOIN 또는 INNER JOIN로 알려짐)에는 탐색 뷰와 조인된 뷰에 모두 일치하는 레코드가 있는 행만 포함됩니다.



cross

cross 조인 유형(SQL에서 알 수 있는 CROSS JOIN)은 거의 사용되지 않습니다. 제로 필링 또는 행렬 생성에 유용한 경우도 있습니다. 탐색 뷰와 조인된 뷰를 조합할 때마다 하나의 행이 생성됩니다. 개념은 벤 다이어그램에 표시하기 어려우며, 표 예시를 살펴보면 더 잘 이해할 수 있습니다.

Examples

dna 정보를 사용할 수 있는 경우 LEFT JOIN를 사용하여 dna 데이터를 people 데이터에 추가합니다.

explore: person {
  join: dna {
    sql_on: ${person.dna_id} = ${dna.id} ;;
    type: left_outer  # Could be excluded since left_outer is the default
  }
}

사용자가 주문하지 않은 경우에도 FULL OUTER JOIN를 사용하여 user 데이터를 order 데이터에 추가합니다.

explore: order {
  join: user {
    sql_on: ${order.user_id} = ${user.id} ;;
    type: full_outer
  }
}

INNER JOIN를 사용하여 user 데이터를 event 데이터에 추가하고 사용자가 생성한 이벤트로만 결과를 제한합니다.

explore: event {
  join: user {
    sql_on: ${event.user_id} = ${user.id} ;;
    type: inner
  }
}

CROSS JOIN를 사용하여 ownerproperty의 가능한 모든 조합을 생성합니다.

explore: property {
  join: owner {
    sql_on: 1 = 1 ;; # this sql_on condition is required in some dialects,
    type: cross      # but causes problems in other dialects, try adding or
  }                  # removing if you experience problems with cross joins
}

알아두어야 할 사항

일반적으로 left_outer 조인 유형이 선호됨

SQL을 학습하고 사용할 때 많은 사람들이 기술적으로 '내부 조인'이라고 하는 JOIN에 중점을 둡니다. 이러한 이유로 대부분의 경우 type: inner_join를 사용해야 한다고 가정할 수 있습니다. 그러나 Looker는 일반적으로 SQL에서 LEFT JOIN를 사용하는 것과 비슷한 type: left_outer에서 가장 잘 작동합니다.

이렇게 하는 이유는 일반적으로 탐색에 연결된 뷰가 아닌 탐색에 연결된 뷰가 '기본' 데이터이기 때문입니다. 예를 들어 이벤트 정보를 기반으로 한 탐색 분석이 있을 수 있습니다. 일부 이벤트는 시스템에서 생성되고 다른 이벤트는 사용자가 생성할 수 있습니다. 일반 JOIN를 사용하여 userevent에 참여하면 사용자가 만든 이벤트만 볼 수 있으며 시스템 이벤트를 볼 수 없게 됩니다. 대신 LEFT JOIN를 사용하면 연결된 사용자가 있는지 여부와 관계없이 모든 이벤트를 볼 수 있습니다.

행 제한이 중요하다면 always_join를 사용하는 것이 좋습니다.

Looker는 쿼리에 사용할 SQL을 생성할 때 가장 깔끔한 SQL을 생성하려고 시도하며, 사용자가 선택하는 필드에 필요한 조인만 사용합니다. type를 사용하여 LEFT JOIN 이외의 항목을 정의하는 경우 결과 행에 조인 제한을 포함하도록 항상 특정 조인 (또는 조인 세트)을 쿼리의 일부로 포함하는 것이 좋습니다. 이렇게 하려면 always_join 매개변수를 사용합니다.