En esta página, se hace referencia al parámetro
sql
que forma parte de una unión.
sql
también se puede usar como parte de un campo, como se describe en la página de documentación del parámetrosql
(para campos).
sql
también se puede usar como parte de una tabla derivada, como se describe en la página de documentación del parámetrosql
(para tablas derivadas).
Definición
sql
te permite escribir el SQL sin procesar que unirá una vista en una exploración. Actualmente, se usa casi exclusivamente para ejecutar RIGHT JOIN
, lo cual no es compatible con el parámetro type
. De lo contrario, existen mejores parámetros para usar las uniones.
Antes de Looker 3.10, sql
era el único método disponible para ejecutar una unión que no era LEFT JOIN
. Por ejemplo, antes de la versión 3.10, podías crear un INNER JOIN
entre una exploración event
y una vista member
de la siguiente manera:
explore: event {
join: member {
sql:
INNER JOIN member
ON member.id = event.member_id ;;
}
}
-
A partir de Looker 3.10, la combinación debe ejecutarse con sql_on
o foreign_key
, mientras que el tipo de unión debe definirse con type
de la siguiente manera:
# 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
}
}
-
El segundo caso de uso común para sql
era unir tablas de dos bases de datos diferentes, que se llama "unión federada". Por ejemplo, es posible que hayas escrito este 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 ;;
}
}
-
Esto se puede lograr usando sql_table_name
en su lugar, de la siguiente manera:
# 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 ;;
}