SQL UNION: Cómo unir tablas

El operador UNION se usa para combinar el conjunto de resultados de dos o más instrucciones SELECT.

Cada instrucción SELECT dentro de UNION debe tener el mismo número de columnas, las columnas también deben tener tipos de datos similares. Las columnas en cada declaración SELECT también deben estar en el mismo orden.

Sintaxis SQL UNION

A continuación puedes ver la sintaxis que se utiliza para realizar la instrucción UNION para unir consultas:

SELECT nombre_columna(s) FROM tabla1
UNION
SELECT nombre_columna(s) FROM tabla2;

Sintaxis UNION ALL en SQL

El operador de UNION selecciona solamente los valores distintos por defecto. Para permitir valores duplicados, utilice UNION ALL:

SELECT nombre_columna(s) FROM tabla1
UNION ALL
SELECT nombre_columna(s) FROM tabla2;

Ejemplo SQL UNION y UNION ALL

Los nombres de columna en el conjunto de resultados generalmente son iguales a los nombres de columna en la primera instrucción SELECT en la UNIÓN.

La siguiente declaración SQL selecciona todas las ciudades diferentes (solo valores distintos) de “CLIENTES” y “PROVEEDORES”:

SELECT Ciudad FROM Clientes
UNION
SELECT Ciudad FROM Proveedores
ORDER BY Ciudad;
SELECT Ciudad FROM Clientes
UNION ALL
SELECT Ciudad FROM Proveedores
ORDER BY Ciudad;

Ejemplo SQL UNION con WHERE

La siguiente declaración SQL selecciona todas las diferentes ciudades españolas (solo valores distintos) de “CLIENTES” y “PROVEEDORES”:

SELECT Ciudad, Pais FROM Clientes
WHERE Pais ='España'
UNION
SELECT Ciudad, Pais FROM Proveedores
WHERE Pais='España'
ORDER BY Ciudad;
SELECT Ciudad, Pais 
FROM Clientes
WHERE Pais='España'
UNION ALL
SELECT Ciudad, Pais FROM Proveedores
WHERE Pais='España'
ORDER BY Ciudad;