tipo

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

type può essere utilizzato anche come parte di una dimensione, descritto nella pagina della documentazione Tipi di dimensioni, filtri e parametri.

type può essere utilizzato anche come parte di una misura, descritto nella pagina della documentazione Tipi di misurazioni.

type può essere utilizzato anche come parte di un filtro della dashboard, descritto nella pagina della documentazione Parametri della dashboard.

type può essere utilizzato anche come parte di un elemento della dashboard, descritto nella pagina della documentazione relativa al parametro type (per le dashboard LookML).

Utilizzo

esplora: view_name {
join: view_name_2 {
type: inner
}
}
Gerarchia
type
Valore predefinito
left_outer

Accetta
Un tipo di unione (cross, full_outer, inner, left_outer)

Regole speciali
Se utilizzi un type diverso da left_outer, potresti utilizzare always_join per assicurarti che le righe risultanti includano le limitazioni di unione

Definizione

type ti consente di descrivere il tipo di join che vuoi eseguire. I possibili valori del tipo di unione sono rappresentati nell'immagine successiva:

I valori del tipo di unione possibili sono descritti nelle seguenti sezioni di questa pagina:

left_outer (valore predefinito)

Il tipo di unione più comune in Looker è left_outer (il motivo per il suo utilizzo frequente è descritto nella sezione left_outer di solito sono preferiti in questa pagina). Potresti conoscerlo da SQL come LEFT JOIN. Quando utilizzi questa type, vengono incluse tutte le righe della sezione Esplora e vengono importati i dati della vista congiunta, se disponibile.



full_outer

Il tipo di unione full_outer, che potresti conoscere da SQL come FULL OUTER JOIN, include tutte le righe della vista Esplora e unite, anche se non esistono dati corrispondenti dall'altra vista. Tieni presente che i join esterni completi non sono supportati in MySQL.



inner

Il tipo di unione inner, che puoi sapere da SQL come JOIN o INNER JOIN, include solo le righe con record corrispondenti sia nella vista Esplora che nella visualizzazione congiunta.



cross

Il tipo di unione cross, che potresti già conoscere da SQL come CROSS JOIN, viene utilizzato raramente. A volte è utile per la compilazione zero o la generazione di matrici. Crea una riga per ogni combinazione di visualizzazione Esplora e Entrata. Il concetto è difficile da mostrare su un diagramma di Venn e può essere compreso meglio osservando l'esempio della tabella:

Esempi

Utilizza una LEFT JOIN per aggiungere dati dna ai dati people, se sono disponibili informazioni su dna:

explore: person {
  join: dna {
    sql_on: ${person.dna_id} = ${dna.id} ;;
    type: left_outer  # Could be excluded since left_outer is the default
  }
}

Utilizza un FULL OUTER JOIN per aggiungere dati user ai dati order, anche se l'utente non ha effettuato un ordine:

explore: order {
  join: user {
    sql_on: ${order.user_id} = ${user.id} ;;
    type: full_outer
  }
}

Utilizza una funzione INNER JOIN per aggiungere dati user ai dati event e limita i risultati solo agli eventi generati da un utente:

explore: event {
  join: user {
    sql_on: ${event.user_id} = ${user.id} ;;
    type: inner
  }
}

Utilizza un CROSS JOIN per generare tutte le possibili combinazioni di owner e property:

explore: property {
  join: owner {
    sql_on: 1 = 1 ;; # this sql_on condition is required in some dialects,
    type: cross      # but causes problems in other dialects, try adding or
  }                  # removing if you experience problems with cross joins
}

Aspetti da tenere presenti

Di solito sono preferibili left_outer tipi di join

Durante l'apprendimento e l'utilizzo di SQL, molte persone si concentrano principalmente su JOIN, tecnicamente noto come "unione interna". Per questo motivo, nella maggior parte dei casi, si può utilizzare type: inner_join. Tuttavia, Looker in genere funziona meglio con type: left_outer, che è come utilizzare LEFT JOIN in SQL.

Il motivo è che la vista associata a un'esplorazione (anziché alle viste unite in un'esplorazione) di solito sono i dati "principali". Ad esempio, potresti avere un'esplorazione basata sulle informazioni sugli eventi. Alcuni eventi possono essere generati dal tuo sistema, altri eventi generati dai tuoi utenti. Se partecipi a user in event utilizzando una versione standard di JOIN, potrai vedere solo gli eventi creati da un utente e perderai la visibilità degli eventi di sistema. Se invece utilizzi un LEFT JOIN, potrai vedere tutti gli eventi, indipendentemente dal fatto che vi sia o meno un utente.

Ti consigliamo di utilizzare always_join se la limitazione delle righe è importante

Quando Looker genera SQL per una query, tenta di creare il codice SQL più pulito possibile e utilizzerà solo i join necessari per i campi selezionati dall'utente. Quando utilizzi type per definire un elemento diverso da LEFT JOIN, potresti sempre voler includere una determinata unione (o un insieme di unione) nella query per assicurarti che le righe risultanti includano le limitazioni di unione. A questo scopo, puoi utilizzare il parametro always_join.