Uso
Always_join: [
view_name,
view_name,
...
]
}
Hierarquia
always_join |
Valor padrão
NenhumaAceita
Colchetes contendo uma lista separada por vírgulas de nomes de visualizaçõesRegras especiais
É necessário participar de uma visualização do explore antes de usá-la em always_join
|
Definição
always_join
força uma ou mais mesclagens a serem incluídas no SQL gerado pelo Looker, mesmo que o usuário não tenha selecionado um campo nessa visualização mesclada. Várias mesclagens podem ser necessárias usando uma lista separada por vírgulas, como [view_name_a, view_name_b, etc]
.
Quando o Looker gera SQL para uma consulta, ele tenta criar o SQL mais limpo possível e usa apenas as mesclagens necessárias para os campos selecionados pelo usuário. Usando always_join
, é possível forçar mesclagens para acontecer.
always_join
pode ser valioso quando uma mesclagem é executada com o parâmetro type
e a mesclagem não é uma LEFT JOIN
. Nessa situação, a mescla pode ser fundamental para limitar corretamente as linhas retornadas.
Examples
Verifique se member
está sempre mesclado com event
, mesmo que o usuário não escolha um campo de member
. Isso limita os resultados para considerar apenas os eventos gerados por membros:
explore: event {
always_join: [member]
join: member {
sql_on: ${event.member_id} = ${member.id} ;;
type: inner
}
}
member
e payment
precisam ser sempre unidos a event
, mesmo que o usuário não escolha um campo de nenhuma dessas visualizações. Isso limita os resultados para considerar apenas os eventos gerados pelo membro em que o membro já pagou:
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
}
}
Desafios comuns
Uma visualização precisa ser associada a uma exploração antes que possa ser referenciada no always_join
Para colocar uma visualização no always_join
, vincule-a ao Explore onde o always_join
está sendo usado. Por exemplo, isto não funcionará:
explore: event {
always_join: [member]
}
Aqui, a visualização member
não foi associada a event
, então não está disponível para uso no always_join
.
Informações úteis
Não aplique lógica de negócios em mesclagens, se possível
A abordagem padrão do Looker para participar é usar um LEFT JOIN
sempre que possível. Nos exemplos acima, evitamos um LEFT JOIN
para que a lógica de negócios possa ser aplicada dentro da própria mesclagem. Em um dos exemplos, criamos um recurso Explorar que incluía apenas os eventos associados aos membros:
explore: event {
always_join: [member]
join: member {
sql_on: ${event.member_id} = ${member.id} ;;
type: inner
}
}
A maneira preferencial de fazer isso no Looker é usar um LEFT JOIN
para coletar dados de eventos e de membros de forma simples:
explore: event {
join: member {
sql_on: ${event.member_id} = ${member.id} ;;
}
}
Em seguida, crie uma dimensão que você pode definir como sim ou não para analisar apenas os eventos de membros:
dimension: is_member_event {
type: yesno
sql: ${member.id} IS NOT NULL ;;
}
Essa abordagem oferece aos usuários a flexibilidade de ver todos os eventos ou apenas os de membro. Não forçou os usuários a procurar apenas os eventos de membros pela mesclagem.