UNION en SQL

El operador UNION en SQL combina el resultado de dos o más consultas SELECT en un solo conjunto de filas.

UNION apila filas de dos consultas compatibles. Piensa en dos listas de clientes o productos que quieres ver en un único informe sin escribir dos consultas separadas.

La diferencia clave: UNION elimina duplicados; UNION ALL los conserva y suele ser más rápido.

Cada SELECT debe devolver el mismo número de columnas, con tipos compatibles y en el mismo orden. Los nombres de columna del resultado suelen tomarse de la primera consulta.


Sintaxis UNION en SQL

La sintaxis indica el orden de argumentos y palabras clave. Copia la plantilla y sustituye nombres de columnas o literales entre comillas simples.

Plantilla

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

UNION frente a UNION ALL

Por defecto, UNION elimina duplicados . Si quieres conservar todas las filas (incluidas repetidas), usa UNION ALL :

Plantilla UNION ALL

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

Ejemplo UNION en SQL

Lista cada ciudad distinta que aparece en Clientes o en Proveedores :

Ciudades sin duplicados

    SELECT Ciudad FROM Clientes
UNION
SELECT Ciudad FROM Proveedores
ORDER BY Ciudad;
  
Abrir en editor

Resultado: 13 ciudades distintas (Madrid cuenta una sola vez aunque esté en ambas tablas).

Ciudad
Barcelona
Berlin
London
Madrid
… 9 ciudades más (13 distintas)

UNION ALL en SQL

La sintaxis indica el orden de argumentos y palabras clave. Copia la plantilla y sustituye nombres de columnas o literales entre comillas simples.

Ciudades con duplicados

    SELECT Ciudad FROM Clientes
UNION ALL
SELECT Ciudad FROM Proveedores
ORDER BY Ciudad;
  
Abrir en editor

Resultado: 16 filas — Madrid, London y otras ciudades repetidas si aparecen en las dos tablas.


Tablas demo para UNION

Tabla Proveedores (demo)

ID_Proveedor Nombre Ciudad Pais
1Alimentos IbéricaMadridEspaña
2Delicias del MarVigoEspaña
3Granos del ValleZaragozaEspaña
4Lácteos PremiumLugoEspaña
5Frutas del SurMálagaEspaña
6Import Foods LtdLondonUK
Tabla Proveedores en el editor SQL. Comparte ciudades con Clientes (Madrid, London…).
ID_Cliente Nombre_Cliente Ciudad Pais
1Ana GarcíaMadridEspaña
2Luis PérezBarcelonaEspaña
3María LópezValenciaEspaña
4Carlos RuizMadridEspaña
6John SmithLondonUK
… 5 clientes más en la demo (10 en total)
Tabla Clientes (extracto). Diez clientes; cinco tienen pedidos.

UNION con WHERE en SQL

Cada consulta puede llevar su propia condición antes del UNION :

Ciudades españolas

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

Resumen UNION

  • UNION apila filas de varias consultas con la misma estructura.
  • UNION quita duplicados; UNION ALL los conserva.
  • Puedes filtrar cada SELECT con WHERE antes de unir.
  • Siguiente paso: valores NULL e IS NULL .

Cómo practicar en el editor

1. Pulsa Pruébalo tú mismo en un ejemplo.
2. Cambia un filtro, columna o literal.
3. Ejecuta y compara el resultado con la tabla de ejemplo.


Practica con ejercicios

Repasa la lección con consultas sobre Clientes (Elena Torres, Valencia…) y Productos (pera, mango, fresa) de nuestra base demo.

Ejercicio: Ciudades distintas con UNION

Combina ciudades de Clientes y Proveedores sin duplicados. Usa la tabla Clientes de la demo (Elena Torres, Valencia…).

Consulta

    SELECT Ciudad FROM Clientes
UNION
SELECT Ciudad FROM Proveedores
ORDER BY Ciudad;
  
Abrir en editor

Ejercicio: Ciudades con UNION ALL

Practica UNION ALL conservando duplicados. Usa la tabla Clientes de la demo (Elena Torres, Valencia…).

Consulta

    SELECT Ciudad FROM Clientes
UNION ALL
SELECT Ciudad FROM Proveedores
ORDER BY Ciudad;
  
Abrir en editor

Ejercicio: UNION con filtro WHERE

Combina consultas filtradas por país. Usa la tabla Clientes de la demo (Elena Torres, Valencia…).

Consulta

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

Cómo practicar

1. Pulsa Ejecutar aquí en el bloque.
2. Modifica la consulta (filtro, columnas…).
3. O abre el editor para más espacio.

Comprueba lo aprendido

Responde 2–3 preguntas sobre esta lección. Verás ✓ en verde si aciertas o ✗ en rojo si fallas.