# Join

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.

[Join script prefix](https://play.vidyard.com/7xrdzssVH99Jsr8gmPunCC)

## Tipos de junções

Existem quatro tipos de uniões:

* União esquerda

* Junção interna

* União externa

* União direita

Exemplos de conjuntos de resultados de diferentes tipos de operações de união

Exemplos de conjuntos de resultados de diferentes tipos de operações de união

Exemplos de conjuntos de resultados de diferentes tipos de operações de união ![Exemplos de conjuntos de resultados de diferentes tipos de operações de união, com uma representação antes e depois das tabelas de dados após cada operação.](https://help.qlik.com/pt-BR/sense/May2026/Subsystems/Hub/Content/Resources/Images/scripting-functions-join-examples-operations.png)

### 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 esquerda

União esquerda

União esquerda ![Diagrama que descreve, em alto nível, as combinações de dados que ocorrem durante uma junção esquerda.](https://help.qlik.com/pt-BR/sense/May2026/Subsystems/Hub/Content/Resources/Images/join-types-scripting_left.png)

### Junçã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.

Junção interna

Junção interna

Junção interna ![Diagrama que descreve, em alto nível, as combinações de dados que ocorrem durante uma junção interna.](https://help.qlik.com/pt-BR/sense/May2026/Subsystems/Hub/Content/Resources/Images/join-types-scripting_inner.png)

### Junção externa (padrão)

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).

Se a palavra-chave "type" for omitida, o tipo de união padrão será uma união externa.

União externa

União externa

União externa ![Diagrama que descreve, em alto nível, as combinações de dados que ocorrem durante uma junção externa.](https://help.qlik.com/pt-BR/sense/May2026/Subsystems/Hub/Content/Resources/Images/join-types-scripting_outer.png)

### 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.

União direita

União direita

União direita ![Diagrama que descreve, em alto nível, as combinações de dados que ocorrem durante uma junção direita.](https://help.qlik.com/pt-BR/sense/May2026/Subsystems/Hub/Content/Resources/Images/join-types-scripting_right.png)

### Junção cruzada

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".

Exemplo de conjunto de resultados de uma operação de "união cruzada"

Exemplo de conjunto de resultados de uma operação de "união cruzada"

Exemplo de conjunto de resultados de uma operação de "união cruzada" ![Comparação antes e depois de dados de entrada com a saída após uma operação de união cruzada (que pode envolver uma operação de união de qualquer tipo).](https://help.qlik.com/pt-BR/sense/May2026/Subsystems/Hub/Content/Resources/Images/scripting-functions-examples-join-no-common-fields.png)

## Sintaxe e argumentos

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. |

## Tópicos relacionados

Estes tópicos podem ajudar você a trabalhar com essa função:

Tópicos relacionados

| Tópico | Descrição |
| --- | --- |
| [Combinando tabelas com Join e Keep](https://help.qlik.com/pt-BR/sense/May2026/Subsystems/Hub/Content/Sense_Hub/Scripting/combine-tables-join-keep.htm) | Este tópico fornece uma explicação adicional dos conceitos de "união" e "manutenção" de conjuntos de dados. |
| [Keep](https://help.qlik.com/pt-BR/sense/May2026/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptPrefixes/Keep.htm) | 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). |

## Exemplos de script de carregamento - Junção esquerda

Uma junção esquerda mantém todos os registros da sua tabela principal (destino) e adiciona dados correspondentes de uma segunda tabela (origem). Se não houver correspondência na origem, o registro da tabela principal ainda aparecerá, mas com campos vazios da tabela de origem.

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptPrefixes/Join.htm)

#### Junção esquerda: exemplo básico

Adicione o script de exemplo ao seu aplicativo e execute-o. Para ver o resultado, adicione os campos listados na coluna de resultados a uma pasta no seu aplicativo.

Script de carregamento

```
Table1:
Load * inline [
Column1, Column2
A, B
1, aa
2, cc
3, ee ];

Table2:
Left Join Load * inline [
Column1, Column3
A, C
1, xx
4, yy ]; 
```

Para obter mais informações sobre como usar carregamentos inline, consulte [Usando carregamentos inline para carregar dados](https://help.qlik.com/pt-BR/sense/May2026/Subsystems/Hub/Content/Sense_Hub/Scripting/inline-loads-qs.htm).

Resultados

Tabela resultante

| Coluna1 | Coluna2 | Coluna3 |
| --- | --- | --- |
| A | B | C |
| 1 | aa | xx |
| 2 | cc | - |
| 3 | ee | - |

Este exemplo demonstra a saída de Junção esquerda em que somente os valores presentes na primeira tabela (esquerda) são unidos.

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptPrefixes/Join.htm)

#### Exemplo de junção esquerda: Enriquecendo pedidos com informações do cliente

Visão geral

Suponha que você tenha uma lista de pedidos, mas nem todos os pedidos têm um registro de cliente correspondente.

Script de carregamento

```
Orders:
Load * inline [
OrderID, CustomerID, Amount
1, 101, 200
2, 102, 150
3, 104, 400
];

Customers:
Left Join (Orders)
Load * inline [
CustomerID, Name
101, Alice
102, Bob
103, Carol
];
```

Resultados

Se você expandir a janela de pré-visualização no Visualizador do modelo de dados, verá uma parte do conjunto completo de resultados organizada em uma tabela:

Visualização da tabela no visualizador do modelo de dados

| OrderID | CustomerID | Valor | Nome |
| --- | --- | --- | --- |
| 1 | 101 | 200 | Alice |
| 2 | 102 | 150 | Bob |
| 3 | 104 | 400 | - |

OrderID 1 e 2 têm clientes correspondentes. OrderID 3 não tem um cliente correspondente, então Name está em branco.

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptPrefixes/Join.htm)

#### Exemplo de junçã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 seção.

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:
Left Join (Changes)
Load * inline [
Status ID	Status	Sub Status
1	Open	Not Started
2	Open	Started
3	Closed	Completed
4	Closed	Cancelled
5	Closed	Obsolete			
] (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

| Alterações |
| --- |
| ID da alteração |
| ID de status |
| Data de início programada |
| Data de término programada |
| Impacto nos negócios |
| 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

| ID da alteração | ID de status | Data de início programada | Data de término programada | Impacto nos negócios | Status | Sub status |
| --- | --- | --- | --- | --- | --- | --- |
| 10030 | 4 | 19/01/2022 | 23/02/2022 | Nenhum | Fechado | Cancelado |
| 10031 | 3 | 20/01/2022 | 25/03/2022 | Baixa | Fechado | Concluído |
| 10015 | 3 | 04/01/2022 | 15/02/2022 | Baixa | Fechado | Concluído |
| 10103 | 1 | 02/04/2022 | 29/05/2022 | Médio | Abrir | Não iniciado |
| 10116 | 1 | 15/04/2022 | 24/04/2022 | Nenhum | Abrir | Não iniciado |
| 10134 | 1 | 03/05/2022 | 08/07/2022 | Baixa | Abrir | Não iniciado |
| 10264 | 1 | 10/09/2022 | 17/10/2022 | Médio | Abrir | Não iniciado |
| 10040 | 1 | 29/01/2022 | 22/04/2022 | Nenhum | Abrir | Não iniciado |
| 10323 | 1 | 08/11/2022 | 26/11/2022 | Alto | Abrir | Não iniciado |
| 10187 | 2 | 25/06/2022 | 24/08/2022 | Baixa | Abrir | Iniciado |
| 10185 | 2 | 23/06/2022 | 08/09/2022 | Nenhum | Abrir | Iniciado |
| 10220 | 2 | 28/07/2022 | 06/09/2022 | Nenhum | Abrir | Iniciado |
| 10326 | 2 | 11/11/2022 | 05/12/2022 | Nenhum | Abrir | Iniciado |
| 10138 | 2 | 07/05/2022 | 03/08/2022 | Nenhum | Abrir | Iniciado |
| 10334 | 2 | 19/11/2022 | 06/02/2023 | Baixa | Abrir | Iniciado |

Como a quinta linha da tabela Status (ID do status: '5', Status: 'Fechado', Substatus: 'Obsoleto') não corresponde a nenhum dos registros da tabela Alterações, as informações nessa linha não aparecem no conjunto de resultados acima.

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]) |
| --- | --- |
| Abrir | 12 |
| Fechado | 3 |

## Exemplos de script de carregamento - Junção interna

Uma junção interna mantém apenas os registros que existem em ambas as tabelas (com base nos valores de campo correspondentes).

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptPrefixes/Join.htm)

#### Junção interna: exemplo básico

Script de carregamento

Adicione o script de exemplo ao seu aplicativo e execute-o. Para ver o resultado, adicione os campos listados na coluna de resultados a uma pasta no seu aplicativo.

```
Table1:
Load * inline [
Column1, Column2
A, B
1, aa
2, cc
3, ee ];

Table2:
Inner Join Load * inline [
Column1, Column3
A, C
1, xx
4, yy ];
```

Para obter mais informações sobre como usar carregamentos inline, consulte [Usando carregamentos inline para carregar dados](https://help.qlik.com/pt-BR/sense/May2026/Subsystems/Hub/Content/Sense_Hub/Scripting/inline-loads-qs.htm).

Resultados

Tabela resultante

| Coluna1 | Coluna2 | Coluna3 |
| --- | --- | --- |
| A | B | C |
| 1 | aa | xx |

Este exemplo demonstra a saída de Junção interna em que apenas os valores presentes na primeira (esquerda) e na segunda (direita) tabelas são unidos.

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptPrefixes/Join.htm)

#### Exemplo de junção interna: Reduzindo pedidos apenas para os enviados

Visão geral

Você tem pedidos e uma lista de pedidos enviados. Você quer apenas os pedidos que foram enviados.

Script de carregamento

```
Orders:
Load * inline [
OrderID, Amount
1, 200
2, 150
3, 400
];

Shipped:
Inner Join (Orders)
Load * inline [
OrderID, ShipDate
2, 2022-05-01
3, 2022-05-02
4, 2022-05-03
];
```

Resultados

Se você expandir a janela de pré-visualização no Visualizador do modelo de dados, verá uma parte do conjunto completo de resultados organizada em uma tabela:

Visualização da tabela no visualizador do modelo de dados

| OrderID | Amount | ShipDate |
| --- | --- | --- |
| 2 | 150 | 2022-05-01 |
| 3 | 400 | 2022-05-02 |

Apenas OrderID 2 e 3 aparecem, porque existem em ambas as tabelas.

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptPrefixes/Join.htm)

#### Exemplo de junçã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 seção.

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
10000	JIRA					
10030	JIRA
10323	JIRA
10134	JIRA
10334	JIRA
10220	JIRA
20000	TFS
] (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. A tabela resultante de um Inner Join incluirá apenas registros com informações correspondentes em ambos os conjuntos de dados.

Tabela de resultados

| Sistema de origem | ID da alteração | Impacto nos negócios |
| --- | --- | --- |
| JIRA | 10030 | Nenhum |
| JIRA | 10134 | Baixa |
| JIRA | 10220 | Nenhum |
| JIRA | 10323 | Alta |
| JIRA | 10334 | Baixa |

## Exemplos de script de carregamento - Junção externa

Uma junção externa mantém todos os registros de ambas as tabelas. Onde não há correspondência, os campos são deixados em branco.

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptPrefixes/Join.htm)

#### Junção externa: exemplo básico

Script de carregamento

Adicione o script de exemplo ao seu aplicativo e execute-o. Para ver o resultado, adicione os campos listados na coluna de resultados a uma pasta no seu aplicativo.

```
Table1:
Load * inline [
Column1, Column2
A, B
1, aa
2, cc
3, ee ];

Table2:
Outer Join Load * inline [
Column1, Column3
A, C
1, xx
4, yy ]; 
```

Para obter mais informações sobre como usar carregamentos inline, consulte [Usando carregamentos inline para carregar dados](https://help.qlik.com/pt-BR/sense/May2026/Subsystems/Hub/Content/Sense_Hub/Scripting/inline-loads-qs.htm).

Resultados

Tabela resultante

| Coluna1 | Coluna2 | Coluna3 |
| --- | --- | --- |
| A | B | C |
| 1 | aa | xx |
| 2 | cc | - |
| 3 | ee | - |
| 4 | - | yy |

Neste exemplo, as duas tabelas, Table1 e Table2, são mescladas em uma única tabela rotulada como Table1. Em casos como este, o prefixo outer é frequentemente usado para unir várias tabelas em uma única tabela para realizar agregações sobre os valores de uma única tabela.

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptPrefixes/Join.htm)

#### Junção externa: Criando uma lista completa de todos os clientes e pedidos

Visão geral

Você deseja uma lista completa de todos os clientes e pedidos, mesmo que alguns clientes não tenham pedidos e alguns pedidos não tenham um registro de cliente.

Script de carregamento

```
Orders:
Load * inline [
OrderID, CustomerID
1, 101
2, 102
3, 104
];

Customers:
Outer Join (Orders)
Load * inline [
CustomerID, Name
101, Alice
102, Bob
103, Carol
];
```

Resultados

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 no visualizador do modelo de dados

| OrderID | CustomerID | Name |
| --- | --- | --- |
| 1 | 101 | Alice |
| 2 | 102 | Bob |
| 3 | 104 | - |
| - | 103 | Carol |

OrderID 3 não tem cliente correspondente (Name em branco).

CustomerID 103 (Carol) não tem pedido correspondente (OrderID em branco).

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptPrefixes/Join.htm)

#### Junçã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 seção.

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 | ID da alteração | Impacto nos negócios |
| --- | --- | --- |
| JIRA | 10030 | Nenhum |
| JIRA | 10134 | Baixa |
| JIRA | 10220 | Nenhum |
| JIRA | 10323 | - |
| JIRA | 10334 | Baixa |
| JIRA | 10597 | - |
| - | 10015 | Baixa |
| - | 10031 | Baixa |
| - | 10040 | Nenhum |
| - | 10138 | Nenhum |

## Exemplos de script de carregamento - Junção direita

Uma junção direita mantém todos os registros da tabela de origem e adiciona informações correspondentes da tabela de destino. Se a tabela de destino não tiver correspondência, os campos dela ficarão em branco.

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptPrefixes/Join.htm)

#### Junção direita: exemplo básico

Script de carregamento

Adicione o script de exemplo ao seu aplicativo e execute-o. Para ver o resultado, adicione os campos listados na coluna de resultados a uma pasta no seu aplicativo.

```
Table1:
Load * inline [
Column1, Column2
A, B
1, aa
2, cc
3, ee ];

Table2:
Right Join Load * inline [
Column1, Column3
A, C
1, xx
4, yy ];
```

Para obter mais informações sobre como usar carregamentos inline, consulte [Usando carregamentos inline para carregar dados](https://help.qlik.com/pt-BR/sense/May2026/Subsystems/Hub/Content/Sense_Hub/Scripting/inline-loads-qs.htm).

Resultado

Tabela resultante

| Coluna1 | Coluna2 | Coluna3 |
| --- | --- | --- |
| A | B | C |
| 1 | aa | xx |
| 4 | - | yy |

Este exemplo demonstra a saída de Junção direita, em que somente os valores presentes na segunda tabela (direita) são unidos.

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptPrefixes/Join.htm)

#### Exemplo de junção direita: combinando todos os clientes com pedidos correspondentes

Visão geral

Sua tabela de origem é uma lista de clientes; você quer todos os clientes, mais quaisquer pedidos correspondentes.

Script de carregamento

```
Orders:
Load * inline [
OrderID, CustomerID
1, 101
2, 102
3, 104
];

Customers:
Right Join (Orders)
Load * inline [
CustomerID, Name
101, Alice
102, Bob
103, Carol
];
```

Resultados

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 no visualizador do modelo de dados

| CustomerID | Name | OrderID |
| --- | --- | --- |
| 101 | Alice | 1 |
| 102 | Bob | 2 |
| 103 | Carol | - |

Todos os clientes aparecem. Carol não tem pedidos (OrderID em branco).

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptPrefixes/Join.htm)

#### Exemplo de junçã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 seção.

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 representando registros de alterações originados do sistema de origem Teamwork. Isso é carregado e combinado com os registros originais, juntando-o a 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.

Tabela de resultados

| Sistema de origem | ID da alteração | Impacto nos negócios |
| --- | --- | --- |
| Trabalho em equipe | 10015 | Baixa |
| Trabalho em equipe | 10031 | Baixa |
| Trabalho em equipe | 10040 | Nenhum |
| Trabalho em equipe | 10103 | Médio |
| Trabalho em equipe | 50231 | - |

## Solução de problemas - Junção cruzada

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptPrefixes/Join.htm)

#### Exemplo de script de carregamento para solução de problemas: sem nomes de campo comuns

Visão geral

Se você unir duas tabelas sem nomes de campo correspondentes, cada linha da primeira tabela será combinada com cada linha da segunda — potencialmente produzindo um grande número de registros (um produto cartesiano) e levando a associações de dados inesperadas.

Script de carregamento

```
TableA:
Load * inline [
A_ID, ValueA
1, foo
2, bar
];

TableB:
Join (TableA)
Load * inline [
B_ID, ValueB
10, baz
11, qux
];
```

Resultados

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 no visualizador do modelo de dados

| A\_ID | ValueA | B\_ID | ValueB |
| --- | --- | --- | --- |
| 1 | foo | 10 | baz |
| 1 | foo | 11 | qux |
| 2 | bar | 10 | baz |
| 2 | bar | 11 | qux |

Cada A\_ID é emparelhado com cada B\_ID (total de 4 linhas).

Nota de dicaSempre verifique se os nomes dos seus campos correspondem conforme o esperado antes de executar uma junção.

## Saiba mais

* [Load](https://help.qlik.com/pt-BR/sense/May2026/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptRegularStatements/Load.htm)
* [Select](https://help.qlik.com/pt-BR/sense/May2026/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptRegularStatements/Select.htm)
* [Inner](https://help.qlik.com/pt-BR/sense/May2026/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptPrefixes/Inner.htm)
* [Outer](https://help.qlik.com/pt-BR/sense/May2026/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptPrefixes/Outer.htm)
* [Left](https://help.qlik.com/pt-BR/sense/May2026/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptPrefixes/Left.htm)
* [Right](https://help.qlik.com/pt-BR/sense/May2026/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptPrefixes/Right.htm)
* [Keep](https://help.qlik.com/pt-BR/sense/May2026/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptPrefixes/Keep.htm)
* [Combinando tabelas com Join e Keep](https://help.qlik.com/pt-BR/sense/May2026/Subsystems/Hub/Content/Sense_Hub/Scripting/combine-tables-join-keep.htm)