from(結合用)

このページでは、結合の一部である from パラメータについて説明します。

from は、from(Explore 用)パラメータのドキュメント ページで説明されているように、Explore の一部としても使用できます。

用途


explore: view_name {
  join: join_name {
    from: view_name_2
  }
}
階層
from
デフォルト値
名前が結合の名前と一致するビュー

許可
既存のビューの名前

定義

from は、結合で使用する view を指定します。from が省略されている場合、Looker は基盤となるビュー名が結合名と同じであると想定します。

通常、from は、結合とそのフィールドに基盤となるビューとは異なる名前を付ける場合にのみ使用されます。これを明確にするために、underlying_view というビューに order_value というディメンションが作成されている例を考えてみましょう。

  • このフィールドは通常、Explore UI で [UNDERLYING VIEW Order Value] として表示され、LookML で ${underlying_view.order_value} を使用して参照されます。
  • 使用状況セクションの LookML がこの例に適用された場合、フィールドは 新しいエイリアス名「注文額」として表示され、${new_alias_name.order_value} として参照されます。

この手法は、同じビューを複数の異なる方法で Explore に結合する必要がある場合に特に便利です。

ビュー person を Explore order に結合しますが、代わりに customer を呼び出します。

explore: order {
  join: customer {
    from: person
    sql_on: ${order.customer_id} = ${customer.id} ;;
  }
}

ビュー person を Explore order に 2 回結合します。1 回は customer として、もう 1 回は 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 は、Explore 内でフィールドが参照される方法を変更します。

前述したように、from を使用すると、フィールドの参照方法に大きな影響があります。view がさまざまな場所で使用されている場合、このことが原因で問題が発生する可能性があります。次の例を考えてみましょう。

explore: order {
  join: customer {
    from: person
    sql_on: ${order.customer_id} = ${customer.id} ;;
  }
}

ここでは、personorder に結合されていますが、customer と呼ばれています。したがって、order 内の customer からフィールドを参照する必要がある場合は、${customer.field_name} を使用します。2 つ目のデータ探索で personorder に再度結合し、customer に名前を変更しないと、2 つ目のデータ探索で ${customer.field_name} 参照は機能しません。この問題の一般的なアプローチは、fields を使用して、問題のあるフィールドを 2 番目の Explore から除外することです。これは次のようになります。

explore: the_second_explore {
  fields: [ALL_FIELDS*, -person.problem_field]
  join: person {
    sql_on: ${the_second_explore.some_field} = ${person.some_field} ;;
  }
}

from は、同じテーブルを Explore に複数回結合する場合に最もよく使用されます。

1 つのテーブルに異なるタイプのエンティティが含まれている場合は、ビューを Explore に複数回結合できます。order Explore があり、person ビューを 2 回結合する必要があるとします。1 回は顧客用、もう 1 回はカスタマー サービス担当者用です。次のようにできます。

explore: order {
  join: customer {
    from: person
    sql_on: ${order.customer_id} = ${customer.id} ;;
  }
  join: representative {
    from: person
    sql_on: ${order.representative_id} = ${representative.id} ;;
  }
}

この LookML から Looker が生成する 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