유형

이 페이지에서는 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을 사용하면 Explore의 모든 행이 포함되고 조인된 뷰의 데이터가 있는 경우 가져옵니다.

full_outer

SQL에서 FULL OUTER JOIN으로 알고 있을 수 있는 full_outer 조인 유형에는 다른 뷰의 상응하는 데이터가 없더라도 Explore 및 조인된 뷰의 모든 행이 포함됩니다.

inner

SQL에서 JOIN 또는 INNER JOIN으로 알고 있을 수 있는 inner 조인 유형에는 Explore와 조인된 뷰 모두에 일치하는 레코드가 있는 행만 포함됩니다.

cross

SQL에서 CROSS JOIN으로 알고 있을 수 있는 cross 조인 유형은 거의 사용되지 않습니다. 때로는 0 채우기 또는 행렬 생성에 유용합니다. Explore와 조인된 뷰의 모든 조합에 대해 행을 만듭니다.

예시

사용자가 주문하지 않은 경우에도 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에서 가장 잘 작동합니다.

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

행을 제한하는 것이 중요한 경우 always_join을 사용하는 것이 좋습니다.

Looker는 쿼리에 대한 SQL을 생성할 때 가능한 가장 깔끔한 SQL을 만들려고 시도하며 사용자가 선택한 필드에 필요한 조인만 사용합니다. type을 사용하여 LEFT JOIN 이외의 항목을 정의할 때 결과 행에 조인 제한이 포함되도록 특정 조인 또는 조인 집합이 항상 쿼리의 일부가 되도록 할 수 있습니다. 이 작업은 always_join 매개변수를 사용하여 실행할 수 있습니다.