Esta página se refere ao parâmetro
sql, que faz parte de uma junção.
sqltambém pode ser usado como parte de um campo, conforme descrito na página de documentação do parâmetrosql(para campos).
sqltambém pode ser usado como parte de uma tabela derivada, conforme descrito na página de documentação do parâmetrosql(para tabelas derivadas).
Definição
O sql permite escrever o SQL bruto que vai unir uma visualização a uma Análise. Atualmente, ele é usado quase exclusivamente para executar RIGHT JOIN, que não é compatível com o parâmetro type. Caso contrário, há parâmetros melhores para executar junções.
Antes do Looker 3.10, sql era o único método disponível para executar uma junção que não fosse um LEFT JOIN. Por exemplo, antes da versão 3.10, você pode ter criado um INNER JOIN entre uma análise detalhada event e uma visualização member assim:
explore: event {
join: member {
sql:
INNER JOIN member
ON member.id = event.member_id ;;
}
}
-
No Looker 3.10, a junção precisa ser executada com sql_on ou foreign_key. O tipo de junção precisa ser definido usando type da seguinte maneira:
# Option 1 Using sql_on
explore: event {
join: member {
sql_on: ${member.id} = ${event.member_id} ;;
type: inner
}
}
# Option 2 Using foreign_key
explore: event {
join: member {
foreign_key: member_id
type: inner
}
}
-
O segundo caso de uso comum do sql era unir tabelas de dois bancos de dados diferentes, o que é chamado de "junção federada". Por exemplo, você pode ter escrito este LookML:
# Model File
explore: view_1 {
join: view_2 {
sql:
LEFT JOIN other_db.other_schema.view_2 AS view_2
ON view_1.something = view_2.something ;;
}
}
-
Agora isso pode ser feito usando sql_table_name, da seguinte forma:
# Model File
explore: view_1 {
join: view_2 {
sql_on: ${view_1.something} = ${view_2.something} ;;
type: left_outer
}
}
# View File
view: view_2 {
sql_table_name: other_db.other_schema.view_2 ;;
}