Cette page fait référence au paramètre
sqlqui fait partie d'une jointure.
sqlpeut également être utilisé dans un champ, comme décrit sur la page de documentation du paramètresql(pour les champs).
sqlpeut également être utilisé dans une table dérivée, comme décrit sur la page de documentation du paramètresql(pour les tables dérivées).
Définition
sql vous permet d'écrire le code SQL brut qui joindra une vue à une exploration. Il est actuellement utilisé presque exclusivement pour exécuter RIGHT JOIN, qui n'est pas compatible avec le paramètre type. Sinon, il existe de meilleurs paramètres à utiliser pour exécuter des jointures.
Avant Looker 3.10, sql était la seule méthode disponible pour exécuter une jointure qui n'était pas une LEFT JOIN. Par exemple, avant la version 3.10, vous avez peut-être créé un INNER JOIN entre une vue event Explore et une vue member comme ceci :
explore: event {
join: member {
sql:
INNER JOIN member
ON member.id = event.member_id ;;
}
}
-
Depuis Looker 3.10, la jointure doit être exécutée avec sql_on ou foreign_key à la place, tandis que le type de jointure doit être défini à l'aide de type comme suit :
# 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
}
}
-
Le deuxième cas d'utilisation courant de sql consistait à joindre des tables provenant de deux bases de données différentes, ce que l'on appelle une "jointure fédérée". Par exemple, vous avez peut-être écrit ce code 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 ;;
}
}
-
Vous pouvez désormais utiliser sql_table_name à la place, comme suit :
# 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 ;;
}