Tipo

Esta página se refere ao parâmetro type, que faz parte de uma junção.

type também pode ser usado como parte de uma dimensão, conforme descrito na página de documentação Tipos de dimensões, filtros e parâmetros.

type também pode ser usado como parte de uma métrica, conforme descrito na página de documentação Tipos de métricas.

type também pode ser usado como parte de um filtro do painel, descrito na página de documentação Parâmetros do painel.

type também pode ser usado como parte de um elemento do painel, descrito na página de documentação do parâmetro type (para painéis do LookML).

Uso

explore: view_name {
  join: view_name_2 {
    type: inner
  }
}
Hierarquia
type
Valor padrão
left_outer

Aceita
Um tipo de junção (cross, full_outer, inner, left_outer)

Regras especiais
Ao usar um type diferente de left_outer, convém usar always_join para garantir que as linhas resultantes incluam suas restrições de junção.

Definição

type permite descrever o tipo de junção que você quer realizar.

Os valores possíveis de tipo de junção estão descritos nestas seções desta página:

left_outer (o valor padrão)

O tipo de junção mais comum no Looker é left_outer. O motivo do uso frequente é descrito na seção Os tipos de junção left_outer geralmente são preferidos nesta página. Você pode conhecer esse conceito do SQL como um LEFT JOIN. Quando você usa esse type, todas as linhas da Análise são incluídas, e os dados da visualização unida são importados, se disponíveis.

full_outer

O tipo de junção full_outer, que você pode conhecer do SQL como um FULL OUTER JOIN, inclui todas as linhas da análise detalhada e da visualização unida, mesmo que não haja dados correspondentes da outra visualização.

inner

O tipo de junção inner, que você pode conhecer do SQL como JOIN ou INNER JOIN, inclui apenas linhas com registros correspondentes na análise e na visualização unida.

cross

O tipo de junção cross, que você pode conhecer do SQL como um CROSS JOIN, raramente é usado. Às vezes, é útil para preenchimento com zero ou geração de matriz. Ela cria uma linha para cada combinação da análise detalhada e da visualização unida.

Exemplos

Use um FULL OUTER JOIN para adicionar dados de user aos dados de order, mesmo que o usuário não tenha feito um pedido:

explore: order {
  join: user {
    sql_on: ${order.user_id} = ${user.id} ;;
    type: full_outer
  }
}

Use um INNER JOIN para adicionar dados de user aos dados de event e limite os resultados apenas aos eventos gerados por um usuário:

explore: event {
  join: user {
    sql_on: ${event.user_id} = ${user.id} ;;
    type: inner
  }
}

Use um CROSS JOIN para gerar todas as combinações possíveis de owner e property:

explore: property {
  join: owner {
    sql_on: 1 = 1 ;; # this sql_on condition is required in some dialects,
    type: cross      # but causes problems in other dialects, try adding or
  }                  # removing if you experience problems with cross joins
}

Informações importantes

Os tipos de junção left_outer geralmente são preferidos.

Ao aprender e usar SQL, muitas pessoas se concentram principalmente em JOIN, que é tecnicamente conhecido como "junção interna". Por isso, é possível presumir que type: inner_join deve ser usado na maioria dos casos. No entanto, o Looker geralmente funciona melhor com type: left_outer, que é como usar um LEFT JOIN em SQL.

Isso acontece porque a visualização associada a uma análise (em vez das visualizações mescladas em uma análise) geralmente é o dado "principal". Por exemplo, você pode ter uma análise detalhada com base em informações de eventos. Alguns eventos podem ser gerados pelo seu sistema, e outros, pelos usuários. Se você unir user e event usando um JOIN regular, só poderá ver os eventos criados por um usuário e perderá a visibilidade dos eventos do sistema. Ao usar um LEFT JOIN, você poderá ver todos os eventos, com ou sem um usuário associado a eles.

Use always_join se for importante restringir linhas.

Quando o Looker gera SQL para uma consulta, ele tenta criar o SQL mais limpo possível e usa apenas as junções necessárias para os campos selecionados por um usuário. Quando você usa type para definir algo diferente de um LEFT JOIN, talvez queira sempre que uma determinada junção (ou conjunto de junções) faça parte da consulta para garantir que as linhas resultantes incluam suas restrições de junção. Para isso, use o parâmetro always_join.