Esta página se refere ao parâmetro
from
que faz parte de uma mesclagem.O
from
também pode ser usado como parte de uma exploração, descrita na página de documentação do parâmetrofrom
(para explorações).
Uso
join: join_name {
from: view_name_2
}
}
Hierarquia
from |
Valor padrão
Uma visualização cujo nome corresponde ao nome da mesclagemAceita
O nome de uma visualização existente |
Definição
from
especifica o view
que será usado em uma mesclagem. Se from
for omitido, o Looker entenderá que o nome da visualização subjacente é igual ao nome da mesclagem.
Normalmente, from
é usado apenas se você quiser que a mesclagem e os campos dela tenham um nome diferente da visualização subjacente. Para deixar isso mais claro, considere um exemplo em que uma dimensão chamada order_value
foi criada em uma visualização chamada underlying_view
:
- Normalmente, esse campo aparece como Valor subjacente do pedido de visualização na IU para Explorar e é referenciado no LookML com
${underlying_view.order_value}
. - No exemplo de uso mencionado acima, o campo seria exibido como NEW ALIAS NAME Order Value e seria referenciado como
${new_alias_name.order_value}
.
Essa técnica é particularmente útil quando a mesma visualização precisa ser mesclada a um recurso Explorar de várias maneiras.
Examples
Participe da visualização person
e explore o order
, mas chame-o de customer
:
explore: order {
join: customer {
from: person
sql_on: ${order.customer_id} = ${customer.id} ;;
}
}
Participe da visualização person
e explore order
duas vezes, uma como customer
e outra 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} ;;
}
}
Considerações
from
muda a forma como os campos são referenciados em um Explorar
Conforme mencionado acima, o uso de from
tem um impacto importante na maneira como os campos são referenciados. Isso pode causar alguns desafios quando um view
é usado em muitos lugares diferentes. Veja este exemplo:
explore: order {
join: customer {
from: person
sql_on: ${order.customer_id} = ${customer.id} ;;
}
}
Aqui o person
está sendo unido ao order
, mas está sendo chamado de customer
. Portanto, se você precisar referenciar um campo de customer
em order
, use ${customer.field_name}
.
Se, em uma segunda exploração, você mesclar o person
ao order
novamente, mas não renomeá-lo para customer
, a referência ${customer.field_name}
não funcionará nessa segunda exploração. A abordagem geral para esse problema é excluir o campo problemático do segundo Explore usando fields
. Ele será parecido com:
explore: the_second_explore {
fields: [ALL_FIELDS*, -person.problem_field]
join: person {
sql_on: ${the_second_explore.some_field} = ${person.some_field} ;;
}
}
O from
é usado com mais frequência para mesclar a mesma tabela mais de uma vez em uma exploração.
Em casos em que uma única tabela contém diferentes tipos de entidades, é possível mesclar uma visualização a um recurso Explorar mais de uma vez. Suponha que você tenha uma exploração order
e precise participar de uma visualização person
duas vezes: uma para o cliente e outra para o representante de atendimento ao cliente. Você pode fazer algo parecido com isto:
explore: order {
join: customer {
from: person
sql_on: ${order.customer_id} = ${customer.id} ;;
}
join: representative {
from: person
sql_on: ${order.representative_id} = ${representative.id} ;;
}
}
O SQL que o Looker geraria a partir desse LookML é:
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