tipo

En esta página, se hace referencia al parámetro type que forma parte de una unión.

type también se puede usar como parte de una dimensión, que se describe en la página de documentación Dimensión, filtro y tipos de parámetros.

type también se puede usar como parte de una medida, que se describe en la página de documentación Tipos de medición.

type también se puede usar como parte de un filtro del panel, que se describe en la página de documentación Parámetros del panel.

type también se puede usar como parte de un elemento del panel, descrito en la página de documentación del parámetro type (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 unión (cross, full_outer, inner, left_outer)

Reglas especiales
Cuando uses un type que no sea left_outer, te recomendamos usar always_join para asegurarte de que las filas resultantes incluyan tus restricciones para unirse.

Definición

type te permite describir el tipo de unión que deseas realizar. Los valores de tipo de unión posibles se representan en la siguiente imagen:

Los valores de tipo de unión posibles se describen en estas secciones de esta página:

left_outer (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 Se prefieren los tipos de unión left_outer en esta página). Es posible que lo conozcas desde SQL como un LEFT JOIN. Cuando usas este elemento type, se incluyen todas las filas de la pestaña Explorar y se incluyen los datos de la vista unida, si están disponibles.



full_outer

El tipo de unión full_outer, que quizás conoces de SQL como FULL OUTER JOIN, incluye todas las filas de la vista Explorar y unidas, incluso si no hay datos correspondientes de la otra vista. Ten en cuenta que las uniones externas completas no son compatibles con MySQL.



inner

El tipo de unión inner (que conoces de SQL como JOIN o INNER JOIN) solo incluye filas que tienen registros coincidentes en la vista Explorar y de unión.



cross

Rara vez se usa el tipo de unión cross (que conoces de SQL como CROSS JOIN). En ocasiones, es útil para el llenado en cero o la generación de matrices. Crea una fila para cada combinación de la vista Explorar y de unión. El concepto es difícil de mostrar en un diagrama de Venn y se puede comprender mejor si se observa el ejemplo de la tabla:

Ejemplos

Usa un LEFT JOIN para agregar datos de dna a tus datos de people, si hay información de dna disponible:

explore: person {
  join: dna {
    sql_on: ${person.dna_id} = ${dna.id} ;;
    type: left_outer  # Could be excluded since left_outer is the default
  }
}

Usa un 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 user a tus datos de event y limita los resultados a los eventos que generó un usuario:

explore: event {
  join: user {
    sql_on: ${event.user_id} = ${user.id} ;;
    type: inner
  }
}

Usa 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
}

Qué debes saber

Por lo general, se prefieren left_outer tipos de unión

Cuando aprendes y usas SQL, muchas personas se enfocan principalmente en JOIN, que técnicamente se conoce como una “unión interna”. Por este motivo, se puede suponer que se debe usar type: inner_join 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.

Esto se debe a que la vista asociada con Explorar (a diferencia de las vistas unidas a una exploración) suele ser la información "principal". Por ejemplo, puedes tener una exploración basada en información del evento. Es posible que el sistema genere algunos de los eventos y que otros los generen. Si te unes a user en event mediante un JOIN regular, solo podrás ver los eventos que haya creado un usuario y perderás visibilidad de los eventos del sistema. En cambio, con un elemento LEFT JOIN, podrás ver todos los eventos, independientemente de si hay un usuario asociado o no.

Te recomendamos que uses 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 un usuario selecciona. Cuando usas type para definir algo distinto de un LEFT JOIN, siempre debes permitir que una unión determinada (o un conjunto de uniones) sea parte de la consulta, a fin de asegurarte de que las filas resultantes incluyan tus restricciones de combinación. Puedes lograr esto mediante el parámetro always_join.