tipo

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

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

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

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

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

Utilizzo

explore: 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
Quando utilizzi un type diverso da left_outer, ti consigliamo di utilizzare always_join per assicurarti che le righe risultanti includano le restrizioni di unione.

Definizione

type consente di descrivere il tipo di join che vuoi eseguire.

I valori possibili per il tipo di join sono descritti in queste sezioni della pagina:

left_outer (il valore predefinito)

Il tipo di join più comune in Looker è left_outer (il motivo del suo uso frequente è descritto nella sezione I tipi di join left_outer sono generalmente preferiti di questa pagina). Potresti conoscerlo da SQL come LEFT JOIN. Quando utilizzi questo type, vengono incluse tutte le righe dell'esplorazione e vengono importati i dati della vista unita, se disponibili.

full_outer

Il tipo di join full_outer, che potresti conoscere da SQL come FULL OUTER JOIN, include tutte le righe dell'esplorazione e della vista unita, anche se non sono presenti dati corrispondenti nell'altra vista.

inner

Il tipo di join inner, che potresti conoscere da SQL come JOIN o INNER JOIN, include solo le righe che hanno record corrispondenti sia nella visualizzazione Esplora sia in quella unita.

cross

Il tipo di join cross, che potresti conoscere da SQL come CROSS JOIN, viene utilizzato raramente. A volte è utile per il riempimento con zeri o la generazione di matrici. Crea una riga per ogni combinazione della vista Esplora e della vista unita.

Esempi

Utilizza un FULL OUTER JOIN per aggiungere i 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 un INNER JOIN per aggiungere i dati user ai dati event e limita i risultati ai soli 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 combinazioni possibili 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
}

Cose da sapere

Di solito sono preferibili i tipi di unione left_outer

Quando imparano e utilizzano SQL, molte persone si concentrano principalmente su JOIN, tecnicamente noto come "inner join". Per questo motivo, si potrebbe presumere che type: inner_join debba essere utilizzato nella maggior parte dei casi. Tuttavia, Looker in genere funziona meglio con type: left_outer, che è come usare un LEFT JOIN in SQL.

Il motivo è che la visualizzazione associata a un'esplorazione (anziché le visualizzazioni unite in un'esplorazione) è in genere il dato "principale". Ad esempio, potresti avere un'esplorazione basata sulle informazioni sugli eventi. Alcuni eventi potrebbero essere generati dal tuo sistema, altri dagli utenti. Se unisci user a event utilizzando un JOIN normale, potrai visualizzare solo gli eventi creati da un utente e perderai la visibilità degli eventi di sistema. Se utilizzi un LEFT JOIN, potrai visualizzare tutti gli eventi, indipendentemente dal fatto che sia associato o meno un utente.

Potresti voler utilizzare always_join se la limitazione delle righe è importante.

Quando Looker genera SQL per una query, tenta di creare l'SQL più pulito possibile e utilizza solo i join necessari per i campi selezionati da un utente. Quando utilizzi type per definire qualcosa di diverso da un LEFT JOIN, potresti voler includere sempre un determinato join (o insieme di join) nella query per assicurarti che le righe risultanti includano le restrizioni del join. Puoi ottenere questo risultato utilizzando il parametro always_join.