El prefijo join une la tabla cargada con una tabla existente o con la última tabla de datos creada.
El efecto de unir datos es ampliar la tabla de destino con un conjunto adicional de campos o atributos, es decir, aquellos que aún no están presentes en la tabla de destino. Cualquier nombre de campo común entre el conjunto de datos de origen y la tabla de destino se utiliza para determinar cómo asociar los nuevos registros entrantes. Esto se conoce comúnmente como una "unión o join natural". Una operación de unión 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 de unión y el tipo de unión empleado.
Hay cuatro tipos de uniones:
Left join
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 encuentra un resultado coincidente.
Inner join
Cuando tiene dos conjuntos de datos en los que solo le importan los resultados en los que hay una asociación coincidente, considere usar 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, esto puede dejar su tabla de destino con menos registros que antes de que se llevara a cabo la operación de unión.
Outer join
Cuando necesite conservar tanto los registros de destino como todos los registros entrantes, utilice un Outer Join. Cuando no se encuentra ningún resultado, todavía se conserva cada conjunto 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á una unión externa (outer join).
Right join
Este tipo de unión mantiene todos los registros a punto de cargarse, a la vez que reduce los registros de la tabla de destino de la unión a solo aquellos registros en los que hay una coincidencia de asociación en los registros entrantes. Este es un tipo de unión de nicho que a veces se usa como un medio para reducir una tabla de registros ya cargada previamente a un subconjunto requerido.
Nota informativaSi no hay nombres de campo en común entre el origen y el 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".
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.
Estos temas le ayudarán a trabajar con esta función:
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).
Ejemplo 1 - Left join: Enriquecer una tabla de destino con un conjunto de datos de referencia
Vista general
Abra el editor de carga de datos y agregue el script de carga a continuación a una nueva pestaña.
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
Ningún valor que mostrar
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
Medio
Abrir
No iniciado
10116
1
15/04/2022
24/04/2022
Ningún valor que mostrar
Abrir
No iniciado
10134
1
03/05/2022
08/07/2022
Baja
Abrir
No iniciado
10264
1
10/09/2022
17/10/2022
Medio
Abrir
No iniciado
10040
1
29/01/2022
22/04/2022
Ningún valor que mostrar
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
Ningún valor que mostrar
Abrir
Iniciado
10220
2
28/07/2022
06/09/2022
Ningún valor que mostrar
Abrir
Iniciado
10326
2
11/11/2022
05/12/2022
Ningún valor que mostrar
Abrir
Iniciado
10138
2
07/05/2022
03/08/2022
Ningún valor que mostrar
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
Ejemplo 2 – Inner join: Combinar solo registros coincidentes
Vista general
Abra el editor de carga de datos y agregue el script de carga a continuación a una nueva pestaña.
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
Ningún valor que mostrar
JIRA
10134
Baja
JIRA
10220
Ningún valor que mostrar
JIRA
10323
Alta
JIRA
10334
Baja
Ejemplo 3 – Outer join: Combinar conjuntos de registros superpuestos
Vista general
Abra el editor de carga de datos y agregue el script de carga a continuación a una nueva pestaña.
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
Ningún valor que mostrar
JIRA
10134
Baja
JIRA
10220
Ningún valor que mostrar
JIRA
10323
-
JIRA
10334
Baja
JIRA
10597
-
-
10015
Baja
-
10031
Baja
-
10040
Ningún valor que mostrar
-
10138
Ningún valor que mostrar
Ejemplo 4 – Right join: Recortar una tabla de destino por un conjunto de datos maestro secundario
Vista general
Abra el editor de carga de datos y agregue el script de carga a continuación a una nueva pestaña.
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.
No dude en indicarnos en qué podemos mejorar si encuentra algún problema en esta página o su contenido, como, por ejemplo, errores tipográficos, pasos que falta o errores técnicos.