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 parametrotype
(per le dashboard LookML).
Utilizzo
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
.