De (para uniones)

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

from también se puede usar como parte de una exploración, como se describe en la página de documentación del parámetro from (para exploraciones).

Uso


explore: view_name {
  join: join_name {
    from: view_name_2
  }
}
Jerarquía
from
Valor predeterminado
Una vista cuyo nombre coincide con el nombre de la unión

Acepta
Nombre de una vista existente

Definición

from especifica el view que se usará en una unión. Si se omite from, Looker supondrá que el nombre de la vista subyacente es el mismo que el nombre de la unión.

Por lo general, from solo se usa si quieres que la unión y sus campos tengan un nombre diferente al de la vista subyacente. Para que esto quede más claro, considera un ejemplo en el que se creó una dimensión llamada order_value en una vista llamada underlying_view:

  • Por lo general, este campo aparecería como UNDERLYING VIEW Order Value en la IU de Explorar y se haría referencia a él en LookML con ${underlying_view.order_value}.
  • Si el LookML de la sección Uso se aplicara a este ejemplo, el campo aparecería como NUEVO NOMBRE DEL ALIAS Valor del pedido y se haría referencia a él como ${new_alias_name.order_value}.

Esta técnica es particularmente útil cuando la misma vista debe unirse a un Explorar de varias maneras diferentes.

Ejemplos

Une la vista person a la exploración order, pero llámala customer:

explore: order {
  join: customer {
    from: person
    sql_on: ${order.customer_id} = ${customer.id} ;;
  }
}

Une la vista person a la exploración order dos veces: una como customer y otra como representative:

explore: order {
  join: customer {
    from: person
    sql_on: ${order.customer_id} = ${customer.id} ;;
  }
  join: representative {
    from: person
    sql_on: ${order.representative_id} = ${representative.id} ;;
  }
}

Aspectos para tener en cuenta

from cambia la forma en que se hace referencia a los campos en una exploración

Como se mencionó anteriormente, usar from tiene un impacto importante en la forma en que se hace referencia a los campos. Esto puede generar algunos desafíos cuando se usa un view en muchos lugares diferentes. Considera el siguiente ejemplo:

explore: order {
  join: customer {
    from: person
    sql_on: ${order.customer_id} = ${customer.id} ;;
  }
}

Aquí, person se une a order, pero se llama customer. Por lo tanto, si necesitas hacer referencia a un campo de customer dentro de order, usarías ${customer.field_name}. Si, en una segunda exploración, vuelves a unir person a order, pero no la cambias de nombre a customer, la referencia ${customer.field_name} no funcionará en esa segunda exploración. El enfoque general para solucionar este problema es excluir el campo problemático del segundo Explorar con fields. Se vería algo así:

explore: the_second_explore {
  fields: [ALL_FIELDS*, -person.problem_field]
  join: person {
    sql_on: ${the_second_explore.some_field} = ${person.some_field} ;;
  }
}

from se usa con mayor frecuencia para unir la misma tabla más de una vez a una exploración.

En los casos en que una sola tabla contiene diferentes tipos de entidades, es posible unir una vista a una Exploración más de una vez. Supongamos que tienes un order Explorar y necesitas unir una vista de person a él dos veces: una para el cliente y otra para el representante de atención al cliente. Podrías hacer algo como lo siguiente:

explore: order {
  join: customer {
    from: person
    sql_on: ${order.customer_id} = ${customer.id} ;;
  }
  join: representative {
    from: person
    sql_on: ${order.representative_id} = ${representative.id} ;;
  }
}

El código SQL que Looker generaría a partir de este LookML es el siguiente:

SELECT    ...
FROM      order
LEFT JOIN person AS customer
ON        customer.id = order.customer_id
LEFT JOIN person AS representative
ON        representative.id = order.representative_id