Módulo 5 · Consultas avanzadas

Combina resultados con UNION

Une resultados compatibles y distingue las principales operaciones de conjuntos.

20 minNivel IntermedioAntes necesitas: SELECT y tipos de datos compatibles

0 de 45 lecciones

Al terminar, podrás

  • Alinear dos consultas con el mismo número de columnas.
  • Elegir entre UNION y UNION ALL según el tratamiento de duplicados.
  • Aplicar un único ORDER BY al resultado compuesto.

Recupera lo aprendido: ¿JOIN añade información relacionada a las filas o apila dos listas?

La idea clave

Las operaciones de conjuntos apilan resultados verticalmente. Las consultas deben devolver el mismo número de columnas y las posiciones correspondientes deben contener valores compatibles.

UNION y JOIN resuelven preguntas distintas: UNION apila filas de resultados con la misma forma; un JOIN combina columnas de filas relacionadas. Si tu pregunta es “juntar dos listas”, piensa en UNION. Si es “añadir datos de otra tabla a cada fila”, piensa en JOIN.

Decisión principal: usa UNION ALL cuando todas las filas tienen significado y UNION solo cuando necesitas un conjunto sin duplicados. Eliminar duplicados implica trabajo adicional.

La sintaxis básica

Estructura
SELECT columna_1 AS etiqueta
FROM tabla_1
UNION [ALL]
SELECT columna_2
FROM tabla_2
ORDER BY etiqueta;

El nombre de la columna final procede del primer SELECT. El ORDER BY se escribe al final para ordenar el resultado completo.

Ejemplo paso a paso

Crearemos una lista única con dos ciudades de clientes y dos departamentos de empleados.

SQL
SELECT ciudad AS etiqueta
FROM clientes
WHERE ciudad IN ('Madrid', 'Bilbao')
UNION
SELECT departamento
FROM empleados
WHERE departamento IN ('Marketing', 'Soporte')
ORDER BY etiqueta;
Resultado esperado
etiqueta
Bilbao
Madrid
Marketing
Soporte

Cómo funciona

  1. El primer bloque devuelve varias filas repetidas de Madrid y Bilbao.
  2. El segundo devuelve dos filas de Marketing y dos de Soporte.
  3. UNION reduce las diez filas de entrada a cuatro valores distintos.
Comprueba tu comprensión

¿Qué cambiaría al sustituir UNION por UNION ALL?

Un error habitual

Desalinear las columnas

Consulta problemática
SELECT nombre
FROM clientes
UNION
SELECT nombre, salario
FROM empleados;

El primer bloque devuelve una columna y el segundo dos. Añadir columnas no corrige el problema si representan conceptos distintos: decide una estructura común y respétala en todos los bloques.

Practica con datos

Laboratorio SQL

Resuelve la consulta

Pendiente

Escribe una consulta que cree una lista sin duplicados llamada grupo, combine ciudades de clientes y departamentos de empleados y ordene el resultado alfabéticamente.

Resultado esperado: 11 filas con grupo, ordenadas alfabéticamente.

Ver tablas y datos

Cargando la estructura del ejercicio…

La consulta usa datos ficticios y se ejecuta solo en este navegador.

Fuentes técnicas consultadas

Las referencias describen la compatibilidad de columnas, la eliminación de duplicados y la posición del orden final.

Comprueba si puedes explicarlo

Una consulta devuelve A, A y otra devuelve A, B. ¿Cuántas filas producen UNION ALL y UNION?

Ver respuesta razonada

UNION ALL devuelve cuatro filas y conserva las repeticiones. UNION devuelve dos: A y B. Sin ORDER BY no se garantiza en qué orden aparecen.

Responde antes de abrir la explicación. Si necesitaste ayuda, cierra la respuesta y vuelve a explicarlo con tus palabras antes de dar la lección por aprendida.

Qué debes recordar

  • Las consultas combinadas deben tener igual número de columnas compatibles.
  • UNION elimina duplicados; UNION ALL conserva todas las filas.
  • El alias del primer SELECT y el ORDER BY final describen el resultado compuesto.

A continuación: Continúa con Crea categorías con CASE.

Conceptos relacionados