Junção de várias tabelas
Descrição
Seção intitulada “Descrição”A etapa Junção de várias tabelas junta muitas tabelas (até 32) em uma única operação usando um designer de grafo de junção visual, substituindo o padrão de encadear várias etapas de junção de duas tabelas. Você adiciona tabelas, desenha junções entre as colunas delas, escolhe um tipo de junção e as condições de cada junção e mapeia as colunas de saída. O editor tem três guias: Tables & Joins, Colunas de saída e Post-Join Filter.
Para um passo a passo completo, consulte o guia da etapa Junção de várias tabelas.
Designer
Seção intitulada “Designer”- Adicionar tabela — coloque uma tabela de origem na tela como um cartão de colunas. Cada tabela tem um alias (usado como
alias.column) que deve começar com uma letra ou sublinhado e não pode ser uma palavra-chave SQL. - Tabela de destino — a tabela em que o resultado da junção é gravado; criada se não existir.
- Dinâmico — informe uma origem ou o destino como uma referência em vez de escolher: um nome de tabela, um caminho de projeto (
/03 Results/FACT_GL) ou qualquer um dos dois contendo tokens{variable}resolvidos durante a execução. As colunas de uma origem dinâmica não podem ser lidas durante o design, então são inseridas manualmente no painel lateral. - Desenhar junções — arraste de um ponto de coluna de uma tabela até uma coluna de outra para criar uma junção; um Rótulo opcional nomeia a aresta.
- Filtro de entrada — um filtro por tabela aplicado antes da junção.
- Buscar novamente no servidor — atualiza as colunas de um cartão de tabela a partir do catálogo mais recente.
- Organizar layout / Ajustar à visualização — organiza o grafo automaticamente ou ajusta o zoom para caber; o deslocamento e o zoom também podem ser manuais.
- Desfazer / Refazer / Histórico — percorra, revise e restaure as edições.
- Filtrar colunas… — restringe as colunas exibidas em um cartão de tabela.
- Exportar — baixa 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 unidas. |
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 (nenhuma condição permitida). |
Condições
Seção intitulada “Condições”Cada junção que não seja cruzada tem uma ou mais condições combinadas com AND / OR, usando os operadores =, <>, <, <=, >, >=, BETWEEN, IS NULL, IS NOT NULL, IN, NOT IN, LIKE, NOT LIKE.
Uma condição pode nomear uma coluna cujo nome tem espaços ou pontuação, como Build Plant ou Cust (Id); a coluna deve existir nessa entrada. Nomes que contêm aspas duplas, crase, barra invertida ou caractere de controle são recusados.
Para 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, inclusive um nome de alias sozinho, sem ponto. Um limite de texto que começa com um alias e um ponto, como cust.2024 quando uma entrada tem o alias cust, é portanto lido como uma coluna e reportado como ausente.
Na guia Colunas de saída, mapeie as colunas do resultado; renomeie, defina o tipo de dados e agregue conforme necessário. As colunas de mesmo nome recebem automaticamente o alias de origem como prefixo para evitar colisões.
Cada linha obtém seu valor de exatamente um de três campos — definir mais de um, ou nenhum, é rejeitado:
| Tipo | Campos |
|---|---|
| Coluna de origem | Alias de origem (o alias da tela que a contém) 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 tela como alias.column. |
- Escolher na tela… — marque colunas de todas as origens da tela.
- Adicionar todas as colunas de origem — anexa todas as colunas de todas as origens.
- Adicionar coluna de expressão — anexa uma linha de expressão e abre o editor de expressões.
A guia Post-Join Filter aplica um filtro opcional ao resultado da junção (equivalente ao HAVING do SQL) antes de ele ser gravado, editado no mesmo editor de expressões. Ela referencia as colunas de saída como result.column_name; os aliases de origem estão fora do escopo ali.
Colunas nomeadas durante a execução
Seção intitulada “Colunas nomeadas durante a execução”Marque Levar também colunas nomeadas durante a execução para passar sem alteração todas as colunas de origem que a etapa não lista, como a tabela as tem quando a etapa é executada. Use essa opção quando uma etapa anterior cria colunas cujos nomes dependem dos dados, como em um pivô, e por isso você não pode listá-las ao criar a etapa. Deixe-a desmarcada para gravar somente as colunas que você listar.
Comportamento
Seção intitulada “Comportamento”- O grafo de junção é uma árvore: cada tabela se junta ao resultado por exatamente uma aresta (sem ciclos), e uma tabela não pode se juntar a si mesma.
- A configuração é validada tanto ao salvar a etapa quanto ao executá-la; os erros marcam a tabela ou a junção com problema com um marcador ⚠, um salvamento com falha muda para a guia que contém o primeiro problema, e Ir para o problema navega até lá sob demanda. As expressões das colunas de saída e o Post-Join Filter são verificados ao salvar; uma junção que leva colunas nomeadas durante a execução pula a verificação da expressão ao salvar e é verificada quando a etapa é executada.