このページでは、結合の一部である
sqlパラメータについて説明します。
sqlは、sql(フィールド用)パラメータのドキュメント ページで説明されているように、フィールドの一部としても使用できます。
sqlは、sql(派生テーブル用)パラメータのドキュメント ページで説明されているように、派生テーブルの一部としても使用できます。
定義
sql を使用すると、ビューを Explore に結合する未加工の SQL を記述できます。現在、この関数は type パラメータでサポートされていない RIGHT JOIN の実行にほぼ排他的に使用されています。それ以外の場合は、結合の実行に適したパラメータがあります。
Looker 3.10 より前は、LEFT JOIN ではない結合を実行するために使用できるメソッドは sql のみでした。たとえば、3.10 より前のバージョンでは、次のように event Explore と member ビューの間に INNER JOIN を作成していた可能性があります。
explore: event {
join: member {
sql:
INNER JOIN member
ON member.id = event.member_id ;;
}
}
-
Looker 3.10 以降では、結合は sql_on または foreign_key を使用して実行する必要があります。結合のタイプは、次のように type を使用して定義する必要があります。
# Option 1 Using sql_on
explore: event {
join: member {
sql_on: ${member.id} = ${event.member_id} ;;
type: inner
}
}
# Option 2 Using foreign_key
explore: event {
join: member {
foreign_key: member_id
type: inner
}
}
-
sql の 2 つ目の一般的なユースケースは、2 つの異なるデータベースのテーブルを結合することでした。これは「フェデレーション結合」と呼ばれます。たとえば、次のような LookML を記述したとします。
# Model File
explore: view_1 {
join: view_2 {
sql:
LEFT JOIN other_db.other_schema.view_2 AS view_2
ON view_1.something = view_2.something ;;
}
}
-
これは、次のように sql_table_name を使用して実現できるようになりました。
# Model File
explore: view_1 {
join: view_2 {
sql_on: ${view_1.something} = ${view_2.something} ;;
type: left_outer
}
}
# View File
view: view_2 {
sql_table_name: other_db.other_schema.view_2 ;;
}