sempre participar

Uso

explore: explore_name {
Always_join: [
view_name,
view_name,

...
]
}
Hierarquia
always_join
Valor padrão
Nenhuma

Aceita
Colchetes contendo uma lista separada por vírgulas de nomes de visualizações

Regras 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.