En esta página, se hace referencia al parámetro
sqlque forma parte de una unión.
sqltambién se puede usar como parte de un campo, como se describe en la página de documentación del parámetrosql(para campos).
sqltambié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 código SQL sin procesar que unirá una vista a una exploración. Actualmente, se usa casi exclusivamente para ejecutar RIGHT JOIN, que no es compatible con el parámetro type. De lo contrario, existen mejores parámetros para ejecutar las uniones.
Antes de Looker 3.10, sql era el único método disponible para ejecutar una unión que no fuera un LEFT JOIN. Por ejemplo, antes de la versión 3.10, es posible que hayas creado un INNER JOIN entre una exploración de event y una vista de 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 unión se debe ejecutar con sql_on o foreign_key, mientras que el tipo de unión se debe definir 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 de sql era unir tablas de dos bases de datos diferentes, lo que se denomina "unión federada". Por ejemplo, podrías haber 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 ;;
}
}
-
Ahora se puede lograr usando sql_table_name 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 ;;
}