Da (per join)

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 parametro from (per le esplorazioni).

Utilizzo

esplora: view_name {
join: join_name {
da: view_name_2
}
}
Gerarchia
from
Valore predefinito
Una visualizzazione il cui nome corrisponde al nome dell'unione

Accetta
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