da (per le unioni)

Questa pagina si riferisce al parametro from che fa parte di un join.

from può essere utilizzato anche nell'ambito di un'esplorazione, come descritto nella pagina della documentazione dedicata al parametro from (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