# Join

El prefijo join une la tabla cargada con una tabla existente o con la última tabla de datos creada.

El efecto de un join o unión de datos es ampliar la tabla de destino con un conjunto adicional de campos o atributos, es decir, aquellos elementos que aún no estén presentes en la tabla de destino y que deseamos agregar (unir) a nuestra tabla. Cualquier nombre de campo común entre el conjunto de datos de origen y la tabla de destino se utilizará para determinar cómo asociar los nuevos registros entrantes. Esto se conoce comúnmente como una "unión natural" o "join natural". Una operación de unión o join de Qlik puede dar lugar a que la tabla de destino resultante tenga más o menos registros de los que tenía al principio, según la singularidad de la asociación y el tipo de join empleado.

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

## Tipos de uniones

Hay cuatro tipos de uniones:

* Left join

* Inner join

* Outer join

* Right join

Conjuntos de resultados, a modo de ejemplo, de diferentes tipos de operaciones de unión

Conjuntos de resultados, a modo de ejemplo, de diferentes tipos de operaciones de unión

Conjuntos de resultados, a modo de ejemplo, de diferentes tipos de operaciones de unión ![Conjuntos de resultados, a modo de ejemplo, de diferentes tipos de operaciones de unión, con una representación del antes y después de las tablas de datos que siguen a cada operación.](https://help.qlik.com/es-ES/sense/May2026/Subsystems/Hub/Content/Resources/Images/scripting-functions-join-examples-operations.png)

### Left join

Los Left joins son el tipo de unión más común. Por ejemplo, si tiene un conjunto de datos de transacciones y le gustaría combinarlo con un conjunto de datos de referencia, normalmente usaría un `Left Join`. Primero cargaría la tabla de transacciones, luego cargaría el conjunto de datos de referencia a la vez que lo une mediante un prefijo `Left Join` en la tabla de transacciones ya cargada. Un `Left Join` mantendría todas las transacciones tal como están y agregaría los campos de datos de referencia complementarios donde se encuentre un resultado coincidente.

Left join

Left join

Left join ![Diagrama que describe, a grandes rasgos, las combinaciones de datos que se producen durante un left join.](https://help.qlik.com/es-ES/sense/May2026/Subsystems/Hub/Content/Resources/Images/join-types-scripting_left.png)

### Inner join

Cuando tiene dos conjuntos de datos y solo le interesa ver aquellos resultados en los que exista una asociación coincidente, considere la posibilidad de utilizar un `Inner Join`. Esto eliminará todos los registros tanto de los datos de origen cargados como de la tabla de destino si no se encuentra ninguna coincidencia. Como resultado, es posible que esto deje la tabla de destino con menos registros de los que tenía antes de realizar la operación join.

Inner join

Inner join

Inner join ![Diagrama que describe, a grandes rasgos, las combinaciones de datos que se producen durante un inner join.](https://help.qlik.com/es-ES/sense/May2026/Subsystems/Hub/Content/Resources/Images/join-types-scripting_inner.png)

### Outer join (opción predeterminada)

Cuando necesite conservar tanto los registros de destino como todos los registros entrantes, utilice un `Outer Join`. Cuando no se encuentra ninguna coincidencia, se conservan todos los conjuntos de registros, mientras que los campos del lado opuesto de la combinación permanecerán vacíos (nulos).

Si se omite la palabra clave "type", el tipo de unión predeterminado será un outer join.

Outer join

Outer join

Outer join ![Diagrama que describe, a grandes rasgos, las combinaciones de datos que se producen durante un outer join.](https://help.qlik.com/es-ES/sense/May2026/Subsystems/Hub/Content/Resources/Images/join-types-scripting_outer.png)

### Right join

Este tipo de unión conserva todos los registros que se van a cargar, al tiempo que reduce los registros de la tabla a la que va dirigida la unión únicamente a aquellos con los que exista una coincidencia de asociación en los registros entrantes. Se trata de un tipo de unión específica que a veces se utiliza como medio para reducir una tabla de registros ya cargada a un subconjunto concreto.

Right join

Right join

Right join ![Diagrama que describe, a grandes rasgos, las combinaciones de datos que se producen durante un right join.](https://help.qlik.com/es-ES/sense/May2026/Subsystems/Hub/Content/Resources/Images/join-types-scripting_right.png)

### Cross join

Nota informativaSi no hay nombres de campo en común entre el origen y destino de una operación de unión, la unión dará como resultado un producto cartesiano de todas las filas; esto se denomina "unión cruzada" o "cross join".

Conjunto de resultados a modo de ejemplo de una operación "cross join"

Conjunto de resultados a modo de ejemplo de una operación "cross join"

Conjunto de resultados a modo de ejemplo de una operación "cross join" ![Comparación del antes y después de los datos de entrada con el resultado de una operación de cross join (que puede implicar una operación de unión de cualquier tipo).](https://help.qlik.com/es-ES/sense/May2026/Subsystems/Hub/Content/Resources/Images/scripting-functions-examples-join-no-common-fields.png)

## Sintaxis y argumentos

Sintaxis:

[inner | outer | left | right ]Join [ (tablename ) ]( loadstatement | selectstatement )

Argumentos

| Argumento | Descripción |
| --- | --- |
| tablename | Tabla designada que debe compararse con la tabla cargada. |
| loadstatement o selectstatement | La sentencia LOAD o SELECT para la tabla cargada. |

## Temas relacionados

Estos temas le ayudarán a trabajar con esta función:

Temas relacionados

| Tema | Descripción |
| --- | --- |
| [Combinar tablas con Join y Keep](https://help.qlik.com/es-ES/sense/May2026/Subsystems/Hub/Content/Sense_Hub/Scripting/combine-tables-join-keep.htm) | Este tema ofrece una explicación más detallada de los conceptos de “unir o join” y “mantener o conservar” conjuntos de datos. |
| [Keep](https://help.qlik.com/es-ES/sense/May2026/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptPrefixes/Keep.htm) | El prefijo de carga `Keep` es similar al prefijo `Join`, pero no combina los conjuntos de datos de origen y de destino. En su lugar, recorta cada conjunto de datos según el tipo de operación adoptada (inner, outer, left o right). |

## Ejemplos de script de carga - Left join

Un left join conserva todos los registros de la tabla principal (tabla objetivo o de destino) y añade los datos coincidentes de una segunda tabla (tabla de origen). Si no hay ninguna coincidencia en el origen, el registro de la tabla principal sigue apareciendo, pero con campos vacíos de la tabla de origen.

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

#### Left join: ejemplo básico

Agregue el script de ejemplo a su aplicación y ejecútelo. Para ver el resultado, agregue los campos enumerados en la columna de resultados a una hoja en su aplicación.

Script de carga

```
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 más información sobre el uso de cargas inline, vea [Usar cargas inline para cargar datos](https://help.qlik.com/es-ES/sense/May2026/Subsystems/Hub/Content/Sense_Hub/Scripting/inline-loads-qs.htm).

Resultados

Tabla resultante

| Columna 1 | Columna 2 | Columna 3 |
| --- | --- | --- |
| A | B | C |
| 1 | aa | xx |
| 2 | cc | - |
| 3 | ee | - |

Este ejemplo muestra el resultado de realizar un Left Join cuando solo se unen los valores presentes en la primera tabla (izquierda).

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

#### Ejemplo de left join: mejorar los registros de pedidos agregando información del cliente

Vista general

Supongamos que tiene una lista de pedidos, pero no todos los pedidos tienen un registro con su correspondiente cliente.

Script de carga

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

Si expande la ventana de vista previa en el visor del modelo de datos, verá una parte del conjunto de resultados completo organizado en una tabla:

Vista previa de la tabla en el visor del modelo de datos

| OrderID | CustomerID | Amount | Nombre |
| --- | --- | --- | --- |
| 1 | 101 | 200 | Alice |
| 2 | 102 | 150 | Bob |
| 3 | 104 | 400 | - |

OrderID 1 y 2 tienen clientes coincidentes. OrderID 3 no tiene un cliente coincidente, por lo que Name está en blanco.

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

#### Ejemplo de left join: Mejorar una tabla de destino con un conjunto de datos de referencia

Vista general

Abra el Editor de carga de datos y añada el script de carga inferior en una nueva sección.

El script de carga contiene:

* Un conjunto de datos que representa registros de cambios, el cual se carga en una tabla denominada `Changes`. Incluye un campo clave de ID de estado.

* Un segundo conjunto de datos que representa los estados de cambio, el cual se carga y combina con los registros de cambio originales uniéndolos con un prefijo left join `Join`.

Este left join garantiza que los registros de cambios permanezcan intactos mientras se agregan atributos de estado donde se encuentre un resultado coincidente en los registros de estado entrantes en función de un ID de estado común.

Script de carga

```
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 el visor del modelo de datos y observe la forma del modelo de datos. Solo hay una tabla desnormalizada presente. Es una combinación de todos los registros de cambios originales, con los atributos de estado coincidentes unidos en cada registro de cambios.

Modelo de datos internos resultante

| Cambios |
| --- |
| ID de cambio |
| ID de estado |
| Fecha de inicio programada |
| Fecha de finalización programada |
| Impacto de negocio |
| Estado |
| Subestado |

Si expande la ventana de vista previa en el visor del modelo de datos, verá una parte de este conjunto de resultados completo organizado en una tabla:

Vista previa de la tabla de cambios en el visor del modelo de datos

| ID de cambio | ID de estado | Fecha de inicio programada | Fecha de finalización programada | Impacto de negocio | Estado | Subestado |
| --- | --- | --- | --- | --- | --- | --- |
| 10030 | 4 | 19/01/2022 | 23/02/2022 | Ninguno | Cerrado | Cancelado |
| 10031 | 3 | 20/01/2022 | 25/03/2022 | Baja | Cerrado | Finalizado |
| 10015 | 3 | 04/01/2022 | 15/02/2022 | Baja | Cerrado | Finalizado |
| 10103 | 1 | 02/04/2022 | 29/05/2022 | Medium | Abrir | No iniciado |
| 10116 | 1 | 15/04/2022 | 24/04/2022 | Ninguno | Abrir | No iniciado |
| 10134 | 1 | 03/05/2022 | 08/07/2022 | Baja | Abrir | No iniciado |
| 10264 | 1 | 10/09/2022 | 17/10/2022 | Medium | Abrir | No iniciado |
| 10040 | 1 | 29/01/2022 | 22/04/2022 | Ninguno | Abrir | No iniciado |
| 10323 | 1 | 08/11/2022 | 26/11/2022 | Alta | Abrir | No iniciado |
| 10187 | 2 | 25/06/2022 | 24/08/2022 | Baja | Abrir | Iniciado |
| 10185 | 2 | 23/06/2022 | 08/09/2022 | Ninguno | Abrir | Iniciado |
| 10220 | 2 | 28/07/2022 | 06/09/2022 | Ninguno | Abrir | Iniciado |
| 10326 | 2 | 11/11/2022 | 05/12/2022 | Ninguno | Abrir | Iniciado |
| 10138 | 2 | 07/05/2022 | 03/08/2022 | Ninguno | Abrir | Iniciado |
| 10334 | 2 | 19/11/2022 | 06/02/2023 | Baja | Abrir | Iniciado |

Dado que la quinta fila de la tabla Estado (ID. de estado: "5", Estado: "Cerrado", Subestado: "Obsoleto") no corresponde a ninguno de los registros de la tabla Cambios, la información de esta fila no aparece en el conjunto de resultados anterior.

Vuelva al Editor de carga de datos. Cargue los datos y abra una hoja. Cree una nueva tabla y agregue este campo como dimensión: `Status`.

Añada esta medida:

`=Count([Change ID])`

Ahora puede inspeccionar la cantidad de cambios por estado.

Tabla de resultados

| Estado | =Count([Change ID]) |
| --- | --- |
| Abrir | 12 |
| Cerrado | 3 |

## Ejemplos de script de carga - Inner join

Una unión interna inner join mantiene solo los registros que existan en ambas tablas (basándose en los valores de campo coincidentes).

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

#### Inner join: ejemplo básico

Script de carga

Agregue el script de ejemplo a su aplicación y ejecútelo. Para ver el resultado, agregue los campos enumerados en la columna de resultados a una hoja en su aplicación.

```
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 más información sobre el uso de cargas inline, vea [Usar cargas inline para cargar datos](https://help.qlik.com/es-ES/sense/May2026/Subsystems/Hub/Content/Sense_Hub/Scripting/inline-loads-qs.htm).

Resultados

Tabla resultante

| Columna 1 | Columna 2 | Columna 3 |
| --- | --- | --- |
| A | B | C |
| 1 | aa | xx |

Este ejemplo muestra el resultado de aplicar Inner Join cuando solo se unen los valores presentes tanto en la primera tabla (izquierda) como en la segunda (derecha).

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

#### Ejemplo de inner join: Reducir los pedidos a solo los enviados

Vista general

Tiene una serie de pedidos y una lista de los pedidos enviados. Solo quiere información sobre los pedidos que se han enviado.

Script de carga

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

Si expande la ventana de vista previa en el visor del modelo de datos, verá una parte del conjunto de resultados completo organizado en una tabla:

Vista previa de la tabla en el visor del modelo de datos

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

Solo aparecen OrderID 2 y 3, porque ambos existen en ambas tablas.

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

#### Ejemplo de inner join: combinar únicamente los registros coincidentes

Vista general

Abra el Editor de carga de datos y añada el script de carga inferior en una nueva sección.

El script de carga contiene:

* Un conjunto de datos que representa registros de cambios, el cual se carga en una tabla denominada Changes.

* Un segundo conjunto de datos que representa los registros de cambios que se originan en el sistema de origen JIRA. Esto se carga y se combina con los registros originales uniéndolos con un prefijo de carga Inner Join.

Este Inner Join garantiza que solo se mantengan los cinco registros de cambios que se encuentran en ambos conjuntos de datos.

Script de carga

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

Cargue los datos y abra una hoja. Cree una nueva tabla y agregue estos campos como dimensiones:

* Source System

* Change ID

* Business Impact

Ahora puede revisar los cinco registros resultantes. La tabla resultante de un Inner Join solo incluirá registros con información coincidente en ambos conjuntos de datos.

Tabla de resultados

| Sistema de origen | ID de cambio | Impacto de negocio |
| --- | --- | --- |
| JIRA | 10030 | Ninguno |
| JIRA | 10134 | Baja |
| JIRA | 10220 | Ninguno |
| JIRA | 10323 | Alta |
| JIRA | 10334 | Baja |

## Ejemplos de script de carga - Outer join

Un outer join mantiene todos los registros de ambas tablas. Cuando no hay coincidencia, los campos se dejan en blanco.

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

#### Outer join: ejemplo básico

Script de carga

Agregue el script de ejemplo a su aplicación y ejecútelo. Para ver el resultado, agregue los campos enumerados en la columna de resultados a una hoja en su aplicación.

```
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 más información sobre el uso de cargas inline, vea [Usar cargas inline para cargar datos](https://help.qlik.com/es-ES/sense/May2026/Subsystems/Hub/Content/Sense_Hub/Scripting/inline-loads-qs.htm).

Resultados

Tabla resultante

| Columna 1 | Columna 2 | Columna 3 |
| --- | --- | --- |
| A | B | C |
| 1 | aa | xx |
| 2 | cc | - |
| 3 | ee | - |
| 4 | - | yy |

En este ejemplo, las dos tablas, Table1 y Table2, se fusionan en una sola tabla denominada Table1. En casos como este, el prefijo outer a menudo se usa para unir varias tablas en una sola tabla a fin de realizar agregaciones sobre los valores de una sola tabla.

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

#### Outer join: crear una lista completa de todos los clientes y pedidos

Vista general

Desea una lista completa de todos los clientes y pedidos, incluso si algunos clientes no tienen pedidos y algunos pedidos no tienen un registro de cliente.

Script de carga

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

Si expande la ventana de vista previa en el visor del modelo de datos, verá una parte de este conjunto de resultados completo organizado en una tabla:

Vista previa de la tabla en el visor del modelo de datos

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

OrderID 3 no tiene un cliente coincidente (Name en blanco).

CustomerID 103 (Carol) no tiene ningún pedido coincidente (OrderID en blanco).

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

#### Outer join: combinar conjuntos de registros superpuestos

Vista general

Abra el Editor de carga de datos y añada el script de carga inferior en una nueva sección.

El script de carga contiene:

* Un conjunto de datos que representa registros de cambios, el cual se carga en una tabla denominada Changes.

* Un segundo conjunto de datos que representa los registros de cambios que se originan en el sistema de origen JIRA, el cual se carga y se combina con los registros originales uniéndolos con un prefijo de carga Outer Join.

Esto garantiza que se conserven todos los registros de cambios superpuestos de ambos conjuntos de datos.

Script de carga

```
// 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

Cargue los datos y abra una hoja. Cree una nueva tabla y agregue estos campos como dimensiones:

* Source System

* Change ID

* Business Impact

Ahora puede revisar los 10 registros resultantes.

Tabla de resultados

| Sistema de origen | ID de cambio | Impacto de negocio |
| --- | --- | --- |
| JIRA | 10030 | Ninguno |
| JIRA | 10134 | Baja |
| JIRA | 10220 | Ninguno |
| JIRA | 10323 | - |
| JIRA | 10334 | Baja |
| JIRA | 10597 | - |
| - | 10015 | Baja |
| - | 10031 | Baja |
| - | 10040 | Ninguno |
| - | 10138 | Ninguno |

## Ejemplos de script de carga - Right join

Una unión right join mantiene todos los registros de la tabla de origen y añade información coincidente de la tabla de destino. Si la tabla de destino no tiene ninguna coincidencia, sus campos se ven en blanco.

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

#### Right join: ejemplo básico

Script de carga

Agregue el script de ejemplo a su aplicación y ejecútelo. Para ver el resultado, agregue los campos enumerados en la columna de resultados a una hoja en su aplicación.

```
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 más información sobre el uso de cargas inline, vea [Usar cargas inline para cargar datos](https://help.qlik.com/es-ES/sense/May2026/Subsystems/Hub/Content/Sense_Hub/Scripting/inline-loads-qs.htm).

Resultado

Tabla resultante

| Columna 1 | Columna 2 | Columna 3 |
| --- | --- | --- |
| A | B | C |
| 1 | aa | xx |
| 4 | - | yy |

Este ejemplo muestra el resultado de realizar un Right Join cuando solo se unen los valores de la segunda tabla (derecha).

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

#### Ejemplo de Right join: combinar todos los clientes con sus pedidos coincidentes

Vista general

La tabla de origen es un listado de clientes y deseamos ver todos los clientes con sus pedidos coincidentes.

Script de carga

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

Si expande la ventana de vista previa en el visor del modelo de datos, verá una parte de este conjunto de resultados completo organizado en una tabla:

Vista previa de la tabla en el visor del modelo de datos

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

Aparecen todos los clientes. Carol no tiene pedidos (OrderID en blanco).

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

#### Ejemplo de right join: recortar una tabla de destino mediante un conjunto de datos maestro secundario

Vista general

Abra el Editor de carga de datos y añada el script de carga inferior en una nueva sección.

El script de carga contiene:

* Un conjunto de datos que representa registros de cambios, el cual se carga en una tabla denominada Changes.

* Un segundo conjunto de datos que representa los registros de cambios que se originan en el sistema de origen Teamwork. Esto se carga y se combina con los registros originales al unirlo con un prefijo de carga Right Join.

Esto garantiza que solo se mantengan los registros de cambios Teamwork, sin perder ningún registro Teamwork si la tabla de destino no tiene ningún Change ID.

Script de carga

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

Cargue los datos y abra una hoja. Cree una nueva tabla y agregue estos campos como dimensiones:

* Source System

* Change ID

* Business Impact

Ahora puede revisar los cinco registros resultantes.

Tabla de resultados

| Sistema de origen | ID de cambio | Impacto de negocio |
| --- | --- | --- |
| Trabajo en equipo | 10015 | Baja |
| Trabajo en equipo | 10031 | Baja |
| Trabajo en equipo | 10040 | Ninguno |
| Trabajo en equipo | 10103 | Medium |
| Trabajo en equipo | 50231 | - |

## Resolución de problemas - Cross join

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

#### Ejemplo de script de carga para resolución de problemas: no hay nombres de campo comunes

Vista general

Si une dos tablas que no tienen nombres de campo coincidentes entre sí, cada fila de la primera tabla se combinará con cada fila de la segunda, lo que podría producir una gran cantidad de registros (un producto cartesiano) y dar lugar a asociaciones de datos inesperadas.

Script de carga

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

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

Resultados

Si expande la ventana de vista previa en el visor del modelo de datos, verá una parte de este conjunto de resultados completo organizado en una tabla:

Vista previa de la tabla en el visor del modelo de datos.

| 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 se empareja con cada B\_ID (total 4 filas).

Nota de sugerenciaCompruebe siempre que los nombres de sus campos coincidan según lo previsto antes de ejecutar una unión join.

## Más información

* [Load](https://help.qlik.com/es-ES/sense/May2026/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptRegularStatements/Load.htm)
* [Select](https://help.qlik.com/es-ES/sense/May2026/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptRegularStatements/Select.htm)
* [Inner](https://help.qlik.com/es-ES/sense/May2026/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptPrefixes/Inner.htm)
* [Outer](https://help.qlik.com/es-ES/sense/May2026/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptPrefixes/Outer.htm)
* [Left](https://help.qlik.com/es-ES/sense/May2026/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptPrefixes/Left.htm)
* [Right](https://help.qlik.com/es-ES/sense/May2026/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptPrefixes/Right.htm)
* [Keep](https://help.qlik.com/es-ES/sense/May2026/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptPrefixes/Keep.htm)
* [Combinar tablas con Join y Keep](https://help.qlik.com/es-ES/sense/May2026/Subsystems/Hub/Content/Sense_Hub/Scripting/combine-tables-join-keep.htm)