Questa pagina si riferisce al parametro
from
che fa parte di un join.
from
può essere utilizzato anche come parte di un'esplorazione, descritto nella pagina della documentazione relativa al parametrofrom
(per le esplorazioni).
Utilizzo
join: join_name {
da: view_name_2
}
}
Gerarchia
from |
Valore predefinito
Una visualizzazione il cui nome corrisponde al nome dell'unioneAccetta
Il nome di una vista esistente |
Definizione
from
specifica view
da utilizzare in un join. Se from
viene omesso, Looker presumerà che il nome della vista sottostante corrisponda al nome join.
In genere from
viene utilizzato solo se vuoi che l'unione e i relativi campi abbiano un nome diverso dalla vista sottostante. Per chiarire, considera un esempio in cui è stata creata una dimensione denominata order_value
in una vista denominata underlying_view
:
- In genere questo campo viene visualizzato come INDERLYING VIEW Value Value nell'interfaccia utente di Explore e viene fatto riferimento in LookML con
${underlying_view.order_value}
. - Nell'esempio di utilizzo riportato sopra, il campo viene visualizzato come Valore ordine NOME ALIAS e fa riferimento a
${new_alias_name.order_value}
.
Questa tecnica è particolarmente utile quando la stessa visualizzazione deve essere unita a un'esplorazione in diversi modi.
Esempi
Partecipa alla vista person
per esplorare order
, ma chiama invece customer
:
explore: order {
join: customer {
from: person
sql_on: ${order.customer_id} = ${customer.id} ;;
}
}
Partecipa alla visualizzazione person
per esplorare order
due volte diverse: una come customer
e una volta come 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} ;;
}
}
Aspetti da considerare
from
cambia la modalità di riferimento dei campi all'interno di un'esplorazione
Come indicato in precedenza, l'utilizzo di from
ha un impatto importante sul modo in cui viene fatto riferimento ai campi. Questo può causare alcune difficoltà quando un view
viene utilizzato in molte posizioni diverse. Considera questo esempio:
explore: order {
join: customer {
from: person
sql_on: ${order.customer_id} = ${customer.id} ;;
}
}
Qui person
parteciperà a order
, ma si chiamerà customer
. Pertanto, se avessi bisogno di fare riferimento a un campo di customer
all'interno di order
, dovresti utilizzare ${customer.field_name}
.
Se, in un secondo Explore, partecipi di nuovo a person
in order
, ma non rinominarlo in customer
, il riferimento ${customer.field_name}
non funzionerà in quel secondo Explore. L'approccio generale a questo problema consiste nell'escludere il campo problematico dalla seconda esplorazione utilizzando fields
. Ecco un esempio:
explore: the_second_explore {
fields: [ALL_FIELDS*, -person.problem_field]
join: person {
sql_on: ${the_second_explore.some_field} = ${person.some_field} ;;
}
}
from
viene utilizzato più spesso per unire la stessa tabella più di una volta a un elemento Explore
Se una singola tabella contiene tipi di entità diversi, è possibile unire una visualizzazione a un'esplorazione più di una volta. Supponiamo che tu avessi un'esplorazione order
e avessi bisogno di unire una visualizzazione person
per due volte: una per il cliente e una per il rappresentante dell'assistenza. Ecco cosa puoi fare:
explore: order {
join: customer {
from: person
sql_on: ${order.customer_id} = ${customer.id} ;;
}
join: representative {
from: person
sql_on: ${order.representative_id} = ${representative.id} ;;
}
}
L'SQL generato da Looker a partire da questo LookML è il seguente:
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