unión_siempre

Uso

explore: explore_name {
always_join: [
view_name,
view_name,

...
]
}
Jerarquía
always_join
Valor predeterminado
Ninguna

Acepta
Corchetes que contienen una lista de nombres de vistas separados por comas

Reglas especiales
Debes unir una vista a explore antes de usarla en always_join

Definición

always_join obliga a que se incluyan una o más uniones en el SQL que genera Looker, incluso si el usuario no seleccionó un campo de esa vista unida. Se pueden requerir varias uniones mediante una lista separada por comas, como [view_name_a, view_name_b, etc].

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. Si usas always_join, puedes forzar que se produzcan uniones sin importar lo que suceda.

always_join puede ser valiosa cuando una unión se ejecuta con el parámetro type y la unión no es un LEFT JOIN. En tal caso, la combinación puede ser crítica para limitar correctamente las filas que se muestran.

Ejemplos

Asegúrate de que member esté siempre unido a event, incluso si el usuario no elige un campo de member. Esto limita los resultados para que solo se muestren los eventos generados por los miembros:

explore: event {
  always_join: [member]
  join: member {
    sql_on: ${event.member_id} = ${member.id} ;;
    type: inner
  }
}

Asegúrate de que member y payment siempre estén unidos a event, incluso si el usuario no elige un campo de ninguna de esas vistas. Esto limita los resultados para que solo se muestren los eventos generados por los miembros que ya hayan pagado:

explore: event {
  always_join: [member, payment]
  join: member {
    sql_on: ${event.member_id} = ${member.id} ;;
    type: inner
  }
  join: payment {
    sql_on: ${member.payment_id} = ${payment.id} ;;
    type: inner
  }
}

Desafíos habituales

Una vista debe unirse a una exploración antes de que se pueda hacer referencia en always_join

Para colocar una vista en always_join, asegúrate de que esté unida a Explorar en la que se usa always_join. Por ejemplo, esto no funcionará:

explore: event {
  always_join: [member]
}

Aquí la vista member no se unió a event, por lo que no está disponible para su uso en always_join.

Qué debes saber

Si es posible, no aplique la lógica empresarial en las uniones.

El enfoque estándar de Looker para unirse es usar un LEFT JOIN siempre que sea posible. En los ejemplos anteriores, evitamos un LEFT JOIN para que la lógica empresarial se pueda aplicar dentro de la combinación. En uno de los ejemplos, creamos una exploración que incluía solo aquellos eventos que estaban asociados con los miembros:

explore: event {
  always_join: [member]
  join: member {
    sql_on: ${event.member_id} = ${member.id} ;;
    type: inner
  }
}

La forma preferida de ejecutar esto en Looker es usar un LEFT JOIN para obtener los datos de eventos y los datos de los miembros juntos:

explore: event {
  join: member {
    sql_on: ${event.member_id} = ${member.id} ;;
  }
}

Luego, puede crear una dimensión que se pueda establecer en sí o no, a fin de ver únicamente los eventos de miembros:

dimension: is_member_event {
  type: yesno
  sql: ${member.id} IS NOT NULL ;;
}

Este enfoque les brinda a los usuarios la flexibilidad de ver todos los eventos o solo los eventos para miembros. No obligaste a los usuarios a mirar solo los eventos de los miembros mediante la unión.