You are on page 1of 5

FORMAS DE UNIÓN

DE TABLAS
Índice:

CONCATENACIÓN AUTOMÁTICA............................................................................ 2

CONCATENACIÓN FORZADA ................................................................................. 2

CÓMO EVITAR LA CONCATENACIÓN ...................................................................... 2

JOIN .................................................................................................................... 2

INNER (JOIN) ...................................................................................................... 3

LEFT (JOIN) ......................................................................................................... 3

RIGHT (JOIN) ...................................................................................................... 5

Página 1
Concatenación automática
Si los nombres de los campos y el número de campos de dos o más tablas cargadas fueran
exactamente iguales, QlikView automáticamente concatenará el contenido de las diferentes
sentencias en una tabla.
Ejemplo:
load a, b, c from table1.csv;
load a, c, b from table2,csv;
La tabla lógica resultante tiene los campos a, b y c. El número de registros es la suma de los
números de registros de la tabla 1 y la tabla 2.
Reglas:
El número y los nombres de los campos deben ser exactamente iguales.
El orden de las dos sentencias es arbitrario.

Concatenación forzada
También se puede forzar a QlikView a concatenar dos o más tablas si sus conjuntos de
campos no coinciden exactamente. Esto se hace mediante el prefijo concatenate en el
script, que concatena una tabla con otra tabla designada o con la última tabla lógica
previamente creada.
Ejemplo:
load a, b, c from table1.csv;
concatenate load a, c from table2,csv;
La tabla lógica resultante tiene los campos a, b y c. El número de registros de la tabla
resultante es la suma del número de registros de las tablas 1 y 2. El valor del campo b en los
registros que provienen de la tabla 2 es NULL.
Reglas:
Los nombres de los campos deben ser exactamente iguales.
A no ser que se defina el nombre de una tabla previamente cargada en la sentencia
concatenate, el prefijo concatenate utilizará la última tabla lógica previamente
creada. Por lo tanto, el orden de las dos sentencias no es arbitrario.

Cómo evitar la concatenación


Si los nombres de los campos y el número de campos de dos o más tablas cargadas fueran
exactamente iguales, QlikView automáticamente concatenará el contenido de las diferentes
sentencias en una tabla. Es posible impedir esto mediante una sentencia nonconcatenate. La
tabla cargada con la sentencia load o select asociada no se concatenará entonces con la
tabla existente.
Ejemplo:
load a, b, c from table1.csv;
nonconcatenate load a, b, c from table2.csv

Join
La manera más fácil de hacer una unión es con el prefijo join en el script, que une la tabla de
entrada con la última tabla lógica anteriormente creada. La unión será una unión externa,
creando todas las posibles combinaciones de valores de ambas tablas.
Ejemplo:
load a, b, c from table1.csv;
join load a, d from table2.csv;
La tabla lógica resultante tiene los campos a, b, c y d. El número de registros difiere
dependiendo de los valores de los campos de ambas tablas.
Reglas:

Página 2
Los nombres de los campos que se desea unir deberán ser exactamente iguales.
El número de campos a unir es arbitrario. Normalmente, las tablas deberían tener
uno o varios campos en común. Si no tienen ningún campo en común, se devuelve el
producto cartesiano de las tablas. También es posible tener todos los campos en
común, pero en general no tiene sentido.
A no ser que se defina el nombre de una tabla previamente cargada en la sentencia
join, el prefijo join usa la última tabla lógica previamente creada. Por lo tanto, el
orden de las dos sentencias no es arbitrario.

Inner (Join)
En el lenguaje de script QlikView, el prefijo join puede ir precedido por el prefijo inner.
Si se utiliza delante de join, significa que la unión entre ambas tablas deberá ser una unión
interna (un inner join). La tabla resultante contendrá sólo combinaciones ente las dos tablas,
con un conjunto completo de datos de ambas partes.

Left (Join)
En el lenguaje de script QlikView, el prefijo join puede ir precedidos por el prefijo left.
Si se utiliza delante de join, significa que el join entre las dos tablas deberá ser una unión
izquierda (left join). La tabla resultante contendrá sólo combinaciones entre las dos tablas,
con el conjunto completo de datos de la primera tabla.

Página 3
Página 4
Right (Join)
El prefijo join puede llevar un prefijo right en el lenguaje de script QlikView.
Utilizarlo delante de join, significa que la unión entre las dos tablas deberá ser una unión
derecha (right join). La tabla resultante sólo contendrá combinaciones entre las dos tablas,
con un conjunto completo de datos de la segunda tabla.

Página 5