La función UNION devuelve una tabla resultado de concatenar las filas de dos o más tablas.
UNION(
table1,
table2
[, table...]
)
- table: Referencia a una tabla existente o expresión que devuelve una tabla.
La función UNION devuelve una tabla que contiene todas las filas de las tablas siendo unidas.
Las tablas a unir deben tener el mismo número de columnas. Éstas son combinadas de acuerdo a su posición en la tabla, no de acuerdo a su nombre.
Los nombres de las columnas de la tabla devuelta como resultado de la función serán los mismos que los de las columnas de la tabla pasada como primer argumento.
Las filas duplicadas aparecerán también duplicadas en el resultado de la función. Así, si una fila aparece tanto en table1 como en table2, se mostrará dos veces en el resultado, y si aparece una vez en table1 y dos veces en table2, se mostrará tres veces en el resultado.
La función UNION mantiene el linaje de las columnas solo si el linaje de las dos tablas a unir es el mismo. En el caso de que esto no ocurra, deberemos recurrir a la función TREATAS para asignar el linaje correcto a la tabla generada.
Si partimos de las siguientes dos tablas, Countries1 y Countries2:
...y creamos una tabla calculada con la unión de ambas:
Union = UNION(Countries1, Countries2)
...podemos ver que el resultado tiene 14 filas (8 de la tabla Countries1 y 6 de la tabla Countries2) y contiene filas duplicadas. Así, por ejemplo, la fila "United Kingdom", 1 aparece tres veces: dos de la tabla Countries1 y una más de la tabla Countries2.
Si tenemos una tercera tabla, Countries3, con la misma estructura:
...podemos calcular la unión de las tres tablas con la siguiente expresión:
Union = UNION(Countries1, Countries2, Countries3)
Supongamos ahora que las dos tablas a unir son las ya vistas Countries1 y Countries2, pero que esta última tiene como nombres de campos País y Valor:
El resultado de aplicar la misma medida:
Union = UNION(Countries1, Countries2)
...es la concatenación de las filas, pero recibiendo como nombres de columnas las de la tabla Countries1: