이 페이지에서는 조인의 일부인
type
매개변수를 설명합니다.
type
은 측정기준, 필터, 매개변수 유형 문서 페이지에 설명된 측정기준의 일부로 사용할 수도 있습니다.
type
는 측정 유형 문서 페이지에 설명된 측정의 일부로 사용할 수도 있습니다.
type
은 대시보드 매개변수 문서 페이지에 설명된 대시보드 필터의 일부로 사용할 수도 있습니다.
type
는type
(LookML 대시보드의 경우) 매개변수 문서 페이지에 설명된 대시보드 요소의 일부로 사용할 수도 있습니다.
용도
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
를 사용하여 owner
와 property
의 가능한 모든 조합을 생성합니다.
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
를 사용하여 user
에 event
에 참여하면 사용자가 만든 이벤트만 볼 수 있으며 시스템 이벤트를 볼 수 없게 됩니다. 대신 LEFT JOIN
를 사용하면 연결된 사용자가 있는지 여부와 관계없이 모든 이벤트를 볼 수 있습니다.
행 제한이 중요하다면 always_join
를 사용하는 것이 좋습니다.
Looker는 쿼리에 사용할 SQL을 생성할 때 가장 깔끔한 SQL을 생성하려고 시도하며, 사용자가 선택하는 필드에 필요한 조인만 사용합니다. type
를 사용하여 LEFT JOIN
이외의 항목을 정의하는 경우 결과 행에 조인 제한을 포함하도록 항상 특정 조인 (또는 조인 세트)을 쿼리의 일부로 포함하는 것이 좋습니다. 이렇게 하려면 always_join
매개변수를 사용합니다.