Questa pagina si riferisce al parametro
sql
che fa parte di un join.
sql
può essere utilizzato anche come parte di un campo, come descritto nella pagina della documentazione relativa al parametrosql
(per i campi).
sql
può essere utilizzato anche come parte di una tabella derivata, come descritto nella pagina della documentazione relativa al parametrosql
(per tabelle derivate).
Definizione
sql
consente di scrivere il codice SQL non elaborato che unirà una vista a un'esplorazione. Attualmente viene utilizzato quasi esclusivamente per eseguire RIGHT JOIN
, che non è supportato dal parametro type
. In caso contrario, esistono parametri migliori da utilizzare per eseguire le unioni.
Prima di Looker 3.10, sql
era l'unico metodo disponibile per eseguire un join che non era un LEFT JOIN
. Ad esempio, prima della 3.10 potresti aver creato un elemento INNER JOIN
tra un'esplorazione event
e una vista member
simile alla seguente:
explore: event {
join: member {
sql:
INNER JOIN member
ON member.id = event.member_id ;;
}
}
-
A partire da Looker 3.10, l'unione deve essere eseguita con sql_on
o foreign_key
, mentre il tipo di unione deve essere definito utilizzando type
come segue:
# Option 1 Using sql_on
explore: event {
join: member {
sql_on: ${member.id} = ${event.member_id} ;;
type: inner
}
}
# Option 2 Using foreign_key
explore: event {
join: member {
foreign_key: member_id
type: inner
}
}
-
Il secondo caso d'uso comune per sql
era l'unione di tabelle da due database diversi, chiamati "join federato". Ad esempio, potresti aver scritto il seguente codice LookML:
# Model File
explore: view_1 {
join: view_2 {
sql:
LEFT JOIN other_db.other_schema.view_2 AS view_2
ON view_1.something = view_2.something ;;
}
}
-
Ora puoi ottenere questo risultato utilizzando sql_table_name
, come indicato di seguito:
# Model File
explore: view_1 {
join: view_2 {
sql_on: ${view_1.something} = ${view_2.something} ;;
type: left_outer
}
}
# View File
view: view_2 {
sql_table_name: other_db.other_schema.view_2 ;;
}