Questa pagina si riferisce al parametro
fromche fa parte di un join.
frompuò essere utilizzato anche nell'ambito di un'esplorazione, come descritto nella pagina della documentazione dedicata al parametrofrom(per le esplorazioni).
Utilizzo
explore: view_name {
join: join_name {
from: view_name_2
}
}
|
Gerarchia
from |
Valore predefinito
Una vista il cui nome corrisponde a quello dell'unione
Accetta
Il nome di una visualizzazione esistente
|
Definizione
from specifica il view da utilizzare in un'unione. Se from viene omesso, Looker presuppone che il nome della vista sottostante sia uguale al nome del join.
In genere, from viene utilizzato solo se vuoi che l'unione e i relativi campi abbiano un nome diverso da quello della vista sottostante. Per chiarire meglio, considera un esempio in cui è stata creata una dimensione chiamata order_value in una vista chiamata underlying_view:
- Questo campo in genere viene visualizzato come VISTA SOTTOSTANTE Valore ordine nell'interfaccia utente di Esplora e viene fatto riferimento in LookML con
${underlying_view.order_value}. - Se il codice LookML nella sezione Utilizzo è stato applicato a questo esempio, il campo verrà visualizzato come NEW ALIAS NAME Order Value e verrà indicato come
${new_alias_name.order_value}.
Questa tecnica è particolarmente utile quando la stessa vista deve essere unita a un'esplorazione in diversi modi.
Esempi
Unisci la visualizzazione person all'esplorazione order, ma chiamala customer:
explore: order {
join: customer {
from: person
sql_on: ${order.customer_id} = ${customer.id} ;;
}
}
Unisci la vista person all'esplorazione order due volte, una volta 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 modifica il modo in cui viene fatto riferimento ai 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. Ciò può causare alcuni problemi quando un view viene utilizzato in molti luoghi diversi. Considera questo esempio:
explore: order {
join: customer {
from: person
sql_on: ${order.customer_id} = ${customer.id} ;;
}
}
Qui person viene unito a order, ma viene chiamato customer. Pertanto, se devi fare riferimento a un campo di customer all'interno di order, devi utilizzare ${customer.field_name}.
Se, in una seconda esplorazione, unisci di nuovo person a order, ma non lo rinomini in customer, il riferimento ${customer.field_name} non funzionerà nella seconda esplorazione. L'approccio generale a questo problema consiste nell'escludere il campo problematico dalla seconda esplorazione utilizzando fields. L'aspetto sarà simile al seguente:
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'esplorazione
Nei casi in cui una singola tabella contiene diversi tipi di entità, è possibile unire una visualizzazione a un'esplorazione più di una volta. Supponiamo che tu abbia un'esplorazione order e che tu debba unirla a una visualizzazione person due volte: una per il cliente e una per il rappresentante dell'assistenza clienti. Potresti fare qualcosa di simile:
explore: order {
join: customer {
from: person
sql_on: ${order.customer_id} = ${customer.id} ;;
}
join: representative {
from: person
sql_on: ${order.representative_id} = ${representative.id} ;;
}
}
Il codice SQL che Looker genererebbe da questo codice LookML è:
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