O prefixo join une a tabela carregada a uma tabela nomeada existente ou à última tabela de dados criada.
O efeito da união de dados é estender a tabela de destino por um conjunto adicional de campos ou atributos, ou seja, aqueles que ainda não estão presentes na tabela de destino. Qualquer nome de campo comum entre o conjunto de dados de origem e a tabela de destino é usado para descobrir como associar os novos registros de entrada. Isso costuma ser chamado de "união natural". Uma operação de união da Qlik pode fazer com que a tabela de destino resultante tenha mais ou menos registros do que quando começou, dependendo da exclusividade da associação de união e do tipo de união empregado.
Existem quatro tipos de uniões:
União esquerda
As uniões esquerdas são o tipo de união mais comum. Por exemplo, se você tivesse um conjunto de dados de transação e quisesse combiná-lo com um conjunto de dados de referência, normalmente usaria um Left Join. Você carregaria a tabela de transações primeiro e, em seguida, carregaria o conjunto de dados de referência enquanto o juntasse por meio de um prefixo Left Join à tabela de transações já carregada. Left Join manteria todas as transações como estão e adicionaria os campos de dados de referência suplementares nos quais uma correspondência fosse encontrada.
União interna
Quando houver dois conjuntos de dados nos quais você apenas se preocupa com os resultados em que há uma associação correspondente, considere usar Inner Join. Isso eliminará todos os registros dos dados de origem carregados e da tabela de destino se nenhuma correspondência for encontrada. Como resultado, isso pode deixar sua tabela de destino com menos registros do que antes da operação de união.
União externa
Quando você precisar manter os registros de destino e todos os registros de entrada, use Outer Join. Onde nenhuma correspondência for encontrada, cada conjunto de registros ainda será mantido, enquanto os campos no lado oposto da união permanecerão não preenchidos (nulos). Uniões externas geralmente têm poucos usos práticos.
União direita
Esse tipo de união mantém todos os registros prestes a serem carregados, ao mesmo tempo em que reduz os registros na tabela direcionada pela união para somente os registros em que há uma correspondência de união nos registros de entrada. Esse é um tipo de união de nicho que às vezes é usado como meio de reduzir uma tabela de registros já pré-carregada para um subconjunto necessário.
Se a palavra-chave "type" for omitida, Inner Join será o tipo de união padrão.
Nota informativaSe não houver nomes de campos em comum entre a origem e o destino de uma operação de união, a união resultará em um produto cartesiano de todas as linhas: isso é chamado de "união cruzada".
Sintaxe:
[inner | outer | left | right ]Join[ (tablename )
]( loadstatement | selectstatement )
Argumentos
Argumento
Descrição
tablename
A tabela nomeada a ser comparada com a tabela carregada.
loadstatementou selectstatement
O comando LOAD ou SELECT da tabela carregada.
Estes tópicos podem ajudar você a trabalhar com essa função:
O prefixo de carregamento Keep é semelhante ao prefixo Join, mas não combina os conjuntos de dados de origem e de destino. Em vez disso, ele apara cada conjunto de dados de acordo com o tipo de operação adotada (interna, externa, esquerda ou direita).
Exemplo 1 – União esquerda: Enriquecendo uma tabela de destino com um conjunto de dados de referência
Visão geral
Abra o editor da carga de dados e adicione o script de carregamento abaixo em uma nova guia.
O script de carregamento contém:
Um conjunto de dados que representa registros de alterações, que é carregado em uma tabela denominada Changes. Ele inclui um campo de chave de ID de status.
Um segundo conjunto de dados que representa estados de alterações, que é carregado e combinado com os registros de alterações originais por meio de sua união com um prefixo de carregamento Join esquerdo.
Essa união esquerda garante que os registros de alterações permaneçam intactos ao adicionar atributos de status em que uma correspondência nos registros de status de entrada é encontrada com base em um ID de status comum.
Script de carregamento
Changes:
Load * inline [
Change ID Status ID Scheduled Start Date Scheduled End Date Business Impact
10030 4 19/01/2022 23/02/2022 None
10015 3 04/01/2022 15/02/2022 Low
10103 1 02/04/2022 29/05/2022 Medium
10185 2 23/06/2022 08/09/2022 None
10323 1 08/11/2022 26/11/2022 High
10326 2 11/11/2022 05/12/2022 None
10138 2 07/05/2022 03/08/2022 None
10031 3 20/01/2022 25/03/2022 Low
10040 1 29/01/2022 22/04/2022 None
10134 1 03/05/2022 08/07/2022 Low
10334 2 19/11/2022 06/02/2023 Low
10220 2 28/07/2022 06/09/2022 None
10264 1 10/09/2022 17/10/2022 Medium
10116 1 15/04/2022 24/04/2022 None
10187 2 25/06/2022 24/08/2022 Low
] (delimiter is '\t');
Status:
Join (Changes)
Load * inline [
Status ID Status Sub Status
1 Open Not Started
2 Open Started
3 Closed Complete
4 Closed Cancelled
] (delimiter is '\t');
Resultados
Abra o Visualizador do modelo de dados e observe a forma do modelo de dados. Somente uma tabela desnormalizada está presente. É uma combinação de todos os registros de alterações originais, com os atributos de status correspondentes unidos a cada registro de alterações.
Modelo de dados interno resultante
Changes
Change ID
Status ID
Scheduled Start Date
Scheduled End Date
Business Impact
Status
Sub Status
Se você expandir a janela de visualização no Visualizador do modelo de dados, verá uma parte desse conjunto completo de resultados organizada em uma tabela:
Visualização da tabela Changes no visualizador do modelo de dados
Change ID
Status ID
Scheduled Start Date
Scheduled End Date
Business Impact
Status
Sub Status
10015
3
04/01/2022
15/02/2022
Baixo
Closed
Concluído
10030
4
19/01/2022
23/02/2022
Nenhum
Closed
Cancelado
10031
3
20/01/2022
25/03/2022
Baixo
Closed
Concluído
10040
1
29/01/2022
22/04/2022
Nenhum
Open
Não iniciado
10103
1
02/04/2022
29/05/2022
Médio
Open
Não iniciado
10116
1
15/04/2022
24/04/2022
Nenhum
Open
Não iniciado
10134
1
03/05/2022
08/07/2022
Baixo
Open
Não iniciado
10138
2
07/05/2022
03/08/2022
Nenhum
Open
Iniciado
10185
2
23/06/2022
08/09/2022
Nenhum
Open
Iniciado
10187
2
25/06/2022
24/08/2022
Baixo
Open
Iniciado
10220
2
28/07/2022
06/09/2022
Nenhum
Open
Iniciado
10264
1
10/09/2022
17/10/2022
Médio
Open
Não iniciado
10323
1
08/11/2022
26/11/2022
Alto
Open
Não iniciado
10326
2
11/11/2022
05/12/2022
Nenhum
Open
Iniciado
10334
2
19/11/2022
06/02/2023
Baixo
Open
Iniciado
Retorne ao Editor de carregamento de dados. Carregue os dados e abra uma pasta. Crie uma nova tabela e adicione esse campo como uma dimensão: Status.
Adicione esta medida:
=Count([Change ID])
Agora, você pode inspecionar o número de alterações por status.
Tabela de resultados
Status
=Count([Change ID])
Open
12
Closed
3
Exemplo 2 – União interna: Combinando somente registros correspondentes
Visão geral
Abra o editor da carga de dados e adicione o script de carregamento abaixo em uma nova guia.
O script de carregamento contém:
Um conjunto de dados que representa registros de alterações, que é carregado em uma tabela denominada Changes.
Um segundo conjunto de dados que representa os registros de alterações gerados no sistema de origem JIRA. Esse é carregado e combinado com os registros originais por meio de sua união com um prefixo de carregamento Inner Join.
Essa Inner Join garante que apenas os cinco registros de alterações encontrados em ambos os conjuntos de dados sejam mantidos.
Script de carregamento
Changes:
Load * inline [
Change ID Status ID Scheduled Start Date Scheduled End Date Business Impact
10030 4 19/01/2022 23/02/2022 None
10015 3 04/01/2022 15/02/2022 Low
10103 1 02/04/2022 29/05/2022 Medium
10185 2 23/06/2022 08/09/2022 None
10323 1 08/11/2022 26/11/2022 High
10326 2 11/11/2022 05/12/2022 None
10138 2 07/05/2022 03/08/2022 None
10031 3 20/01/2022 25/03/2022 Low
10040 1 29/01/2022 22/04/2022 None
10134 1 03/05/2022 08/07/2022 Low
10334 2 19/11/2022 06/02/2023 Low
10220 2 28/07/2022 06/09/2022 None
10264 1 10/09/2022 17/10/2022 Medium
10116 1 15/04/2022 24/04/2022 None
10187 2 25/06/2022 24/08/2022 Low
] (delimiter is '\t');
JIRA_changes:
Inner Join (Changes)
Load
[Ticket ID] AS [Change ID],
[Source System]
inline
[
Ticket ID Source System
10030 JIRA
10323 JIRA
10134 JIRA
10334 JIRA
10220 JIRA
10187 JIRA
] (delimiter is '\t');
Resultados
Carregue os dados e abra uma pasta. Crie uma nova tabela e adicione esses campos como dimensões:
Source System
Change ID
Business Impact
Agora, você pode inspecionar os cinco registros resultantes.
Tabela de resultados
Sistema de origem
Change ID
Business Impact
JIRA
10030
Nenhum
JIRA
10134
Baixo
JIRA
10220
Nenhum
JIRA
10323
Alto
JIRA
10334
Baixo
Exemplo 3 – União externa: Combinando conjuntos de registros sobrepostos
Visão geral
Abra o editor da carga de dados e adicione o script de carregamento abaixo em uma nova guia.
O script de carregamento contém:
Um conjunto de dados que representa registros de alterações, que é carregado em uma tabela denominada Changes.
Um segundo conjunto de dados que representa os registros de alterações gerados no sistema de origem JIRA, que é carregado e combinado com os registros originais por meio de sua união com um prefixo de carregamento Outer Join.
Isso garante que todos os registros de alterações sobrepostos de ambos os conjuntos de dados sejam mantidos.
Script de carregamento
// 8 Change records
Changes:
Load * inline [
Change ID Status ID Scheduled Start Date Scheduled End Date Business Impact
10030 4 19/01/2022 23/02/2022 None
10015 3 04/01/2022 15/02/2022 Low
10138 2 07/05/2022 03/08/2022 None
10031 3 20/01/2022 25/03/2022 Low
10040 1 29/01/2022 22/04/2022 None
10134 1 03/05/2022 08/07/2022 Low
10334 2 19/11/2022 06/02/2023 Low
10220 2 28/07/2022 06/09/2022 None
] (delimiter is '\t');
// 6 Change records
JIRA_changes:
Outer Join (Changes)
Load
[Ticket ID] AS [Change ID],
[Source System]
inline
[
Ticket ID Source System
10030 JIRA
10323 JIRA
10134 JIRA
10334 JIRA
10220 JIRA
10597 JIRA
] (delimiter is '\t');
Resultados
Carregue os dados e abra uma pasta. Crie uma nova tabela e adicione esses campos como dimensões:
Source System
Change ID
Business Impact
Agora, você pode inspecionar os 10 registros resultantes.
Tabela de resultados
Sistema de origem
Change ID
Business Impact
JIRA
10030
Nenhum
JIRA
10134
Baixo
JIRA
10220
Nenhum
JIRA
10323
-
JIRA
10334
Baixo
JIRA
10597
-
-
10015
Baixo
-
10031
Baixo
-
10040
Nenhum
-
10138
Nenhum
Exemplo 4 – União direita: Aparando uma tabela de destino por um conjunto de dados mestre secundário
Visão geral
Abra o editor da carga de dados e adicione o script de carregamento abaixo em uma nova guia.
O script de carregamento contém:
Um conjunto de dados que representa registros de alterações, que é carregado em uma tabela denominada Changes.
Um segundo conjunto de dados que representa os registros de alterações gerados no sistema de origem Teamwork. Esse é carregado e combinado com os registros originais por meio de sua união com um prefixo de carregamento Right Join.
Isso garante que somente os registros de alterações Teamwork sejam mantidos, sem perder nenhum registro Teamwork caso a tabela de destino não tenha um Change ID correspondente.
Script de carregamento
Changes:
Load * inline [
Change ID Status ID Scheduled Start Date Scheduled End Date Business Impact
10030 4 19/01/2022 23/02/2022 None
10015 3 04/01/2022 15/02/2022 Low
10103 1 02/04/2022 29/05/2022 Medium
10185 2 23/06/2022 08/09/2022 None
10323 1 08/11/2022 26/11/2022 High
10326 2 11/11/2022 05/12/2022 None
10138 2 07/05/2022 03/08/2022 None
10031 3 20/01/2022 25/03/2022 Low
10040 1 29/01/2022 22/04/2022 None
10134 1 03/05/2022 08/07/2022 Low
10334 2 19/11/2022 06/02/2023 Low
10220 2 28/07/2022 06/09/2022 None
10264 1 10/09/2022 17/10/2022 Medium
10116 1 15/04/2022 24/04/2022 None
10187 2 25/06/2022 24/08/2022 Low
] (delimiter is '\t');
Teamwork_changes:
Right Join (Changes)
Load
[Ticket ID] AS [Change ID],
[Source System]
inline
[
Ticket ID Source System
10040 Teamwork
10015 Teamwork
10103 Teamwork
10031 Teamwork
50231 Teamwork
] (delimiter is '\t');
Resultados
Carregue os dados e abra uma pasta. Crie uma nova tabela e adicione esses campos como dimensões:
Source System
Change ID
Business Impact
Agora, você pode inspecionar os cinco registros resultantes.
Se você encontrar algum problema com esta página ou seu conteúdo - um erro de digitação, uma etapa ausente ou um erro técnico - informe-nos como podemos melhorar!