本頁面是指 加入程序中的
from參數。
from也可做為「探索」的一部分,詳情請參閱「from(適用於探索)」參數說明文件頁面。
用量
explore: view_name {
join: join_name {
from: view_name_2
}
}
|
階層
from |
預設值
名稱與聯結名稱相符的檢視區塊
接受
現有檢視畫面的名稱
|
定義
from 指定要在聯結中使用的 view。如果省略 from,Looker 會假設基礎檢視區塊名稱與聯結名稱相同。
通常只有在您希望聯結及其欄位與基礎檢視區塊的名稱不同時,才會使用 from。為清楚說明,請參考以下範例:在名為 underlying_view 的檢視區塊中,建立名為 order_value 的維度:
- 這個欄位通常會以「基礎檢視表訂單價值」的形式顯示在「探索」使用者介面中,並以
${underlying_view.order_value}參照 LookML。 - 如果「使用情形」部分的 LookML 已套用至這個範例,欄位會改為顯示「NEW ALIAS NAME Order Value」,並參照為
${new_alias_name.order_value}。
如果需要以多種不同方式將同一個檢視區塊加入「探索」,這個技巧就特別實用。
範例
將檢視區塊 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,從第二個 Explore 中排除有問題的欄位。程式碼應如下所示:
explore: the_second_explore {
fields: [ALL_FIELDS*, -person.problem_field]
join: person {
sql_on: ${the_second_explore.some_field} = ${person.some_field} ;;
}
}
from 最常用於將同一個資料表多次彙整至探索
如果單一資料表包含不同類型的實體,檢視區塊可能會多次加入「探索」。假設您有一個 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