이 페이지에서는 조인의 일부인
from
매개변수를 설명합니다.
from
는from
(탐색용) 매개변수 문서 페이지에 설명된 탐색의 일부로 사용할 수도 있습니다.
용도
join: Join_name {
from: view_name_2
}
}
계층 구조
from |
기본값
이름이 조인의 이름과 일치하는 뷰결제 가능
기존 뷰의 이름 |
정의
from
는 조인에 사용할 view
를 지정합니다. from
을 생략하면 Looker에서 기본 뷰 이름이 조인 이름과 동일하다고 가정합니다.
일반적으로 from
는 조인과 그 필드가 기본 뷰와 다른 이름을 갖도록 하려는 경우에만 사용됩니다. 좀 더 명확하게 하려면 underlying_view
라는 뷰에서 order_value
라는 차원을 만든 예를 살펴보겠습니다.
- 이 필드는 일반적으로 탐색 UI에서 UNDERLYING VIEW Order Value로 표시되며 LookML에서
${underlying_view.order_value}
와 함께 참조됩니다. - 위에 나온 사용 예에서는 입력란이 새 ALIAS NAME 주문값으로 표시되고
${new_alias_name.order_value}
로 참조됩니다.
이 기술은 동일한 뷰를 여러 가지 방식으로 탐색에 결합해야 할 때 특히 유용합니다.
Examples
뷰 person
를 탐색 order
에 조인합니다. 대신 customer
를 호출합니다.
explore: order {
join: customer {
from: person
sql_on: ${order.customer_id} = ${customer.id} ;;
}
}
뷰 person
를 탐색 order
에 두 번 참여합니다. 한 번은 customer
로, 다른 하나는 representative
로 진행합니다.
explore: order {
join: customer {
from: person
sql_on: ${order.customer_id} = ${customer.id} ;;
}
join: representative {
from: person
sql_on: ${order.representative_id} = ${representative.id} ;;
}
}
고려사항
from
는 탐색 내에서 필드가 참조되는 방식을 변경합니다.
위에서 언급했듯이 from
사용은 필드가 참조되는 방식에 중요한 영향을 미칩니다. 따라서 view
가 여러 위치에서 사용되는 경우 일부 문제가 발생할 수 있습니다. 다음 예를 참조하세요.
explore: order {
join: customer {
from: person
sql_on: ${order.customer_id} = ${customer.id} ;;
}
}
여기서 person
는 order
에 조인되지만 이름은 customer
입니다. 따라서 order
내에서 customer
의 필드를 참조해야 한다면 ${customer.field_name}
를 사용합니다.
두 번째 탐색에서 person
를 order
에 다시 조인하지만 이름을 customer
로 변경하지 않으면 ${customer.field_name}
참조는 두 번째 탐색에서 작동하지 않습니다. 이 문제에 대한 일반적인 접근 방식은 fields
을 사용하여 두 번째 탐색에서 문제가 있는 필드를 제외하는 것입니다. URL에 태그를 추가하는 방법은 다음과 같습니다.
explore: the_second_explore {
fields: [ALL_FIELDS*, -person.problem_field]
join: person {
sql_on: ${the_second_explore.some_field} = ${person.some_field} ;;
}
}
from
는 동일한 테이블에 2회 이상 탐색에 사용되는 데 가장 자주 사용됩니다.
단일 표에 다른 유형의 항목이 포함된 경우 뷰를 탐색에 두 번 이상 조인할 수 있습니다. order
탐색 분석이 있고 person
뷰에 두 번(고객에 한 번, 고객 서비스 담당자에 대해 한 번) 가입해야 한다고 가정해 보겠습니다. 예를 들면 다음과 같습니다.
explore: order {
join: customer {
from: person
sql_on: ${order.customer_id} = ${customer.id} ;;
}
join: representative {
from: person
sql_on: ${order.representative_id} = ${representative.id} ;;
}
}
Looker에서 이 LookML을 생성하는 SQL은 다음과 같습니다.
SELECT ...
FROM order
LEFT JOIN person AS customer
ON customer.id = order.customer_id
LEFT JOIN person AS representative
ON representative.id = order.representative_id