Junção de várias tabelas
Descrição
Seção intitulada “Descrição”O passo Junção de várias tabelas junta muitas tabelas (até 32) numa única operação com um desenhador de grafo de junções visual, substituindo o padrão de encadear vários passos de junção de duas tabelas. Adiciona tabelas, desenha junções entre as respetivas colunas, escolhe um tipo de junção e condições por junção e mapeia as colunas de saída. O editor tem três separadores: Tabelas e junções, Colunas de saída e Filtro pós-junção.
Para um guia completo, consulte o guia do passo Junção de várias tabelas.
Desenhador
Seção intitulada “Desenhador”- Adicionar tabela — coloca uma tabela de origem na área de desenho como um cartão de colunas. Cada tabela tem um alias (utilizado como
alias.column) que tem de começar com uma letra ou um sublinhado e não pode ser uma palavra-chave SQL. - Tabela de destino — a tabela onde o resultado da junção é escrito; é criada se não existir.
- Dinâmico — indique uma origem ou o destino como referência em vez de o escolher: um nome de tabela, um caminho de projeto (
/03 Results/FACT_GL) ou qualquer um deles com tokens{variable}resolvidos em tempo de execução. As colunas de uma origem dinâmica não podem ser lidas durante a conceção, pelo que são introduzidas manualmente no painel lateral. - Desenhar junções — arraste de um ponto de coluna numa tabela para uma coluna noutra para criar uma junção; uma Etiqueta opcional dá nome à aresta.
- Filtro de entrada — um filtro por tabela aplicado antes da junção.
- Obter novamente do servidor — atualiza as colunas de um cartão de tabela a partir do catálogo mais recente.
- Arrumar esquema / Ajustar à vista — organiza automaticamente o grafo ou ajusta o zoom para caber; a deslocação e o zoom também são manuais.
- Anular / Refazer / Histórico — percorra, reveja e restaure edições.
- Filtrar colunas… — restringe as colunas apresentadas num cartão de tabela.
- Exportar — transfere o diagrama de junção como SVG.
Tipos de junção
Seção intitulada “Tipos de junção”| Tipo | Mantém |
|---|---|
INNER |
As linhas que correspondem entre as tabelas juntas. |
LEFT |
Todas as linhas da tabela esquerda, com as linhas correspondentes da direita. |
FULL |
Todas as linhas das duas tabelas. |
CROSS |
Todas as combinações de linhas (não são permitidas condições). |
Condições
Seção intitulada “Condições”Cada junção não cruzada tem uma ou mais condições combinadas com AND / OR, utilizando os operadores =, <>, <, <=, >, >=, BETWEEN, IS NULL, IS NOT NULL, IN, NOT IN, LIKE, NOT LIKE.
Uma condição pode indicar uma coluna cujo nome tenha espaços ou pontuação, como Build Plant ou Cust (Id); a coluna tem de existir nessa entrada. Os nomes que contenham aspas duplas, acento grave, barra invertida ou um caráter de controlo são recusados.
Em BETWEEN, um limite escrito como o alias de uma entrada, um ponto e uma coluna (cust.Max Id) é lido como uma coluna dessa entrada. Qualquer outro limite é texto literal, incluindo um nome de alias simples sem ponto. Um limite de texto que comece com um alias e um ponto, como cust.2024 quando uma entrada tem o alias cust, é por isso lido como uma coluna e comunicado como inexistente.
No separador Colunas de saída, mapeie as colunas do resultado; mude o nome, defina o tipo de dados e agregue conforme necessário. As colunas com o mesmo nome recebem automaticamente como prefixo o alias de origem para evitar colisões.
Cada linha obtém o seu valor de exatamente um de três campos — definir mais do que um, ou nenhum, é rejeitado:
| Tipo | Campos |
|---|---|
| Coluna de origem | Alias de origem (o alias da área de desenho a que pertence) mais Origem (alias.column). Ambos obrigatórios. |
| Constante | Constante — o mesmo valor fixo em todas as linhas. |
| Expressão | Expressão — uma expressão SQLAlchemy que pode referenciar qualquer alias da área de desenho como alias.column. |
- Escolher da tela… — assinale colunas de todas as origens na área de desenho.
- Adicionar todas as colunas de origem — acrescenta todas as colunas de todas as origens.
- Adicionar coluna de expressão — acrescenta uma linha de expressão e abre o editor de expressões.
O separador Filtro pós-junção aplica um filtro opcional ao resultado da junção (o equivalente a um HAVING de SQL) antes de este ser escrito, editado no mesmo editor de expressões. Referencia as colunas de saída como result.column_name; os alias de origem estão fora do âmbito aí.
Colunas indicadas em tempo de execução
Seção intitulada “Colunas indicadas em tempo de execução”Selecione Transportar também colunas indicadas em tempo de execução para transmitir, sem alterações, todas as colunas de origem que o passo não lista, tal como a tabela as tem quando o passo é executado. Utilize-o quando um passo anterior cria colunas cujos nomes dependem dos dados, como um pivot, e por isso não é possível listá-las ao criar o passo. Deixe a opção desativada para escrever apenas as colunas que listar.
Comportamento
Seção intitulada “Comportamento”- O grafo de junções é uma árvore: cada tabela junta-se ao resultado através de exatamente uma aresta (sem ciclos), e uma tabela não se pode juntar a si própria.
- A configuração é validada tanto quando guarda o passo como quando este é executado; os erros marcam a tabela ou a junção em causa com um marcador ⚠, uma gravação falhada muda para o separador que contém o primeiro problema e Ir para o problema navega até lá a pedido. As expressões das colunas de saída e o Filtro pós-junção são verificados ao guardar; uma junção que transporta colunas indicadas em tempo de execução ignora a verificação das expressões ao guardar e é verificada quando o passo é executado.