Esta página se refere ao parâmetro
sql
que faz parte de uma mesclagem.
sql
também pode ser usado como parte de um campo, conforme descrito na página de documentação de parâmetrossql
(para campos).
sql
também pode ser usado como parte de uma tabela derivada, conforme descrito na página de documentação de parâmetrosql
(para tabelas derivadas).
Definição
sql
permite que você escreva o SQL bruto que participará de uma visualização em um Explorar. No momento, ele é usado quase exclusivamente para executar RIGHT JOIN
, o que não é compatível com o parâmetro type
. Caso contrário, há parâmetros melhores a serem usados para executar mesclagens.
Antes do Looker 3.10, sql
era o único método disponível para executar uma mesclagem que não era um LEFT JOIN
. Por exemplo, antes da versão 3.10, você pode ter criado uma INNER JOIN
entre a visualização event
e uma visualização member
como esta:
explore: event {
join: member {
sql:
INNER JOIN member
ON member.id = event.member_id ;;
}
}
-
A partir do Looker 3.10, a mesclagem será executada com sql_on
ou foreign_key
, enquanto o tipo de mesclagem deverá 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 de sql
era mesclar tabelas de dois bancos de dados diferentes, o que é chamado de "mesclagem 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 maneira:
# 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 ;;
}