En esta página, se hace referencia al parámetro
typeque forma parte de una unión.
typetambién se puede usar como parte de una dimensión, como se describe en la página de documentación Tipos de dimensiones, filtros y parámetros.
typetambién se puede usar como parte de una medida, como se describe en la página de documentación Tipos de medidas.
typetambién se puede usar como parte de un filtro del panel, como se describe en la página de documentación Parámetros del panel.
typetambién se puede usar como parte de un elemento del panel, como se describe en la página de documentación del parámetrotype(para paneles de LookML).
Uso
explore: view_name {
join: view_name_2 {
type: inner
}
}
|
Jerarquía
type |
Valor predeterminado
left_outer
Acepta
Un tipo de combinación (cross, full_outer, inner, left_outer)
Reglas especiales
Cuando usas un type que no sea left_outer, es posible que desees usar always_join para asegurarte de que las filas resultantes incluyan tus restricciones de unión.
|
Definición
type te permite describir el tipo de unión que deseas realizar.
Los valores posibles del tipo de unión se describen en estas secciones de esta página:
left_outer (el valor predeterminado)

El tipo de unión más común en Looker es left_outer (el motivo de su uso frecuente se describe en la sección Por lo general, se prefieren los tipos de unión left_outer de esta página). Quizás lo conozcas de SQL como LEFT JOIN. Cuando usas este type, se incluyen todas las filas de la Exploración y se incorporan los datos de la vista combinada, si están disponibles.

full_outer

El tipo de unión full_outer, que quizás conozcas de SQL como FULL OUTER JOIN, incluye todas las filas de la vista Explorar y de la vista unida, incluso si no hay datos correspondientes de la otra vista.

inner

El tipo de unión inner, que quizás conozcas de SQL como JOIN o INNER JOIN, solo incluye las filas que tienen registros coincidentes en la vista Explorar y en la vista unida.

cross

El tipo de unión cross, que quizás conozcas de SQL como CROSS JOIN, se usa con poca frecuencia. A veces, resulta útil para el relleno con ceros o la generación de matrices. Crea una fila para cada combinación de la Exploración y la vista unida.

Ejemplos
Usa un objeto FULL OUTER JOIN para agregar datos de user a tus datos de order, incluso si el usuario no realizó un pedido:
explore: order {
join: user {
sql_on: ${order.user_id} = ${user.id} ;;
type: full_outer
}
}
Usa un INNER JOIN para agregar datos de user a tus datos de event y limita los resultados solo a los eventos que generó un usuario:
explore: event {
join: user {
sql_on: ${event.user_id} = ${user.id} ;;
type: inner
}
}
Usa un CROSS JOIN para generar todas las combinaciones posibles de owner y property:
explore: property {
join: owner {
sql_on: 1 = 1 ;; # this sql_on condition is required in some dialects,
type: cross # but causes problems in other dialects, try adding or
} # removing if you experience problems with cross joins
}
Información importante
Por lo general, se prefieren los tipos de unión left_outer.
Cuando aprenden y usan SQL, muchas personas se enfocan principalmente en JOIN, que técnicamente se conoce como "unión interna". Por este motivo, se podría suponer que type: inner_join se debería usar en la mayoría de los casos. Sin embargo, Looker suele funcionar mejor con type: left_outer, que es como usar un LEFT JOIN en SQL.
El motivo es que la vista asociada a una Exploración (a diferencia de las vistas unidas en una Exploración) suele ser los datos "principales". Por ejemplo, puedes tener una exploración basada en la información de eventos. Algunos de los eventos pueden ser generados por tu sistema y otros por tus usuarios. Si unes user a event con un JOIN normal, solo podrás ver los eventos que creó un usuario y perderás la visibilidad de los eventos del sistema. Si usas un LEFT JOIN, podrás ver todos los eventos, independientemente de si hay un usuario asociado a ellos.
Es posible que desees usar always_join si es importante restringir las filas.
Cuando Looker genera SQL para una consulta, intenta crear el SQL más limpio posible y solo usará las uniones necesarias para los campos que seleccione un usuario. Cuando usas type para definir algo que no sea un LEFT JOIN, es posible que siempre desees que una determinada combinación (o un conjunto de combinaciones) forme parte de la consulta, para asegurarte de que las filas resultantes incluyan tus restricciones de combinación. Puedes lograrlo con el parámetro always_join.