Módulo 5 · Consultas avanzadas

UNION y operaciones de conjuntos

Combina resultados compatibles en un único conjunto de filas.

⏱ 20 minNivel: IntermedioRequisito: SELECT y tipos de datos compatibles

0 de 40 lecciones

Al terminar esta lección podrás

  • Combinar resultados compatibles.
  • Elegir UNION o UNION ALL.
  • Detectar incompatibilidades de columnas.

Antes de empezar: SELECT y tipos de datos compatibles. Explica en una frase qué recuerdas antes de continuar.

La idea, sin código

UNION apila resultados y elimina duplicados; UNION ALL conserva todas las filas. Ambas consultas deben devolver el mismo número de columnas con tipos compatibles.

Pregunta guía: ¿qué representa cada fila antes y después de aplicar este concepto?

Sintaxis mínima

Estructura
consulta_1
UNION [ALL]
consulta_2

Primer ejemplo guiado

Datos de ejemplo: tabla clientes
idnombreciudademail
1AnaMadridana@ejemplo.es
2LuisValencialuis@ejemplo.es
3MartaMadridNULL
4OmarSevillaomar@ejemplo.es
5NoraBilbaonora@ejemplo.es
Datos de ejemplo: tabla empleados
idnombredepartamentosalariofecha_alta
1LucíaVentas280002024-02-12
2DiegoDatos360002023-09-01
3SaraDatos390002022-04-18
4IvánVentas310002025-01-10
5ElenaSoporte295002024-11-20

Analiza la consulta antes de comprobar el resultado:

SQL
SELECT nombre AS persona, 'cliente' AS tipo FROM clientes
UNION ALL
SELECT nombre, 'empleado' FROM empleados
ORDER BY persona;
Resultado esperado
personatipo
Anacliente
Diegoempleado
Elenaempleado
Ivánempleado
Lucíaempleado
Luiscliente
Martacliente
Noracliente
Omarcliente
Saraempleado

Qué ocurre paso a paso

  1. Cada SELECT devuelve dos columnas compatibles.
  2. UNION ALL conserva todos los nombres.
  3. El alias del resultado procede del primer SELECT.
Comprueba que lo entendiste

¿Qué diferencia principal tiene UNION ALL?

Error frecuente

Consulta o razonamiento problemático

Revisar
SELECT nombre FROM clientes UNION SELECT nombre, salario FROM empleados

Los dos SELECT devuelven cantidades distintas de columnas.

Práctica guiada

Básica · apoyo graduado

Resuelve una sola dificultad cada vez

Combina las ciudades de clientes y los departamentos de empleados en una columna llamada grupo.

Ahora sin guía

Intermedia · práctica autónoma

Transfiere lo aprendido

Repite el ejercicio con UNION ALL y explica la diferencia esperada.

Comparar con una solución posible
SQL
SELECT ciudad AS grupo FROM clientes
UNION ALL
SELECT departamento FROM empleados;

Puede existir otra solución válida. Comprueba que produce el resultado pedido y que puedes explicar cada cláusula.

Resumen para llevarte

  • UNION combina resultados verticalmente.
  • UNION elimina duplicados; UNION ALL no.
  • INTERSECT y EXCEPT no tienen el mismo soporte en todos los motores.

Siguiente paso: Continúa con Crear categorías con CASE.

Consulta rápida