from (조인용)

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

fromfrom (탐색용) 매개변수 문서 페이지에 설명된 탐색의 일부로 사용할 수도 있습니다.

용도

탐색: view_name {
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} ;;
  }
}

여기서 personorder에 조인되지만 이름은 customer입니다. 따라서 order 내에서 customer의 필드를 참조해야 한다면 ${customer.field_name}를 사용합니다. 두 번째 탐색에서 personorder에 다시 조인하지만 이름을 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