Questa pagina si riferisce al parametro
sqlche fa parte di un join.
sqlpuò essere utilizzato anche nell'ambito di un campo, come descritto nella pagina della documentazione dedicata al parametrosql(per i campi).
sqlpuò essere utilizzato anche nell'ambito di una tabella derivata, come descritto nella pagina della documentazione dedicata al parametrosql(per le tabelle derivate).
Definizione
sql ti consente di scrivere l'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 i join.
Prima di Looker 3.10, sql era l'unico metodo disponibile per eseguire un join che non fosse un LEFT JOIN. Ad esempio, prima della versione 3.10 potresti aver creato un INNER JOIN tra un'esplorazione event e una vista member come questa:
explore: event {
join: member {
sql:
INNER JOIN member
ON member.id = event.member_id ;;
}
}
-
A partire da Looker 3.10, il join deve essere eseguito con sql_on o foreign_key, mentre il tipo di join deve essere definito utilizzando type nel seguente modo:
# 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 di due database diversi, chiamata "unione federata". Ad esempio, potresti aver scritto questo 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 è possibile farlo utilizzando sql_table_name, come segue:
# 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 ;;
}