Operaciones de conjuntos · combinación

UNION

UNION apila los resultados de dos o más consultas compatibles y devuelve una sola lista sin filas duplicadas.

Lectura: 7–9 minEjemplo comprobadoPráctica con pistas
Contenido de esta guía

Qué hace UNION

UNION coloca las filas de una consulta debajo de las filas de otra. Después elimina las filas completas repetidas.

Es útil para reunir datos de fuentes o condiciones distintas cuando todos los resultados representan la misma clase de información.

Tres requisitos antes de combinar

  1. Cada SELECT debe devolver el mismo número de columnas.
  2. Las columnas situadas en la misma posición deben tener tipos compatibles.
  3. Cada posición debe expresar la misma idea: nombre con nombre, fecha con fecha, importe con importe.
Estructura
SELECT columna_1, columna_2
FROM primera_fuente
UNION
SELECT columna_1, columna_2
FROM segunda_fuente;

Los nombres de columnas del resultado suelen tomarse del primer SELECT. Si necesitas ordenar, coloca un único ORDER BY al final del conjunto.

Ejemplo guiado

Queremos una lista única de categorías que tienen productos sin stock o productos con precio superior a 200:

SQL
SELECT categoria AS etiqueta
FROM productos
WHERE stock = 0
UNION
SELECT categoria AS etiqueta
FROM productos
WHERE precio > 200
ORDER BY etiqueta;
Resultado comprobado
etiqueta
Audio
Ordenadores
Pantallas

«Ordenadores» cumple las dos condiciones, pero aparece una sola vez. Esa eliminación de duplicados es la diferencia principal frente a UNION ALL.

UNION o UNION ALL

Usa UNION cuando una fila repetida no aporta información nueva y necesitas un conjunto único. Usa UNION ALL cuando quieres conservar todas las apariciones o ya sabes que los bloques no se solapan. Evitar la deduplicación puede reducir trabajo.

Error frecuente

Combinar columnas compatibles pero sin significado común

Que un identificador y una cantidad sean números no significa que deban ocupar la misma columna. Define primero qué representa cada posición del resultado y utiliza alias claros.

Comprueba lo aprendido

Intermedia · conjunto único

Reúne ciudades con clientes activos o con pedidos

Devuelve una lista alfabética y sin duplicados de ciudades que tengan al menos un cliente activo o un cliente que haya realizado un pedido.

Autónoma · transferencia

Combina entidades distintas con una estructura común

Crea una lista única con dos columnas: etiqueta y origen. Incluye los clientes de Madrid marcados como 'cliente' y los productos con precio inferior a 30 marcados como 'producto'. Ordena por etiqueta y después por origen.

Criterio de éxito: ambos SELECT deben devolver exactamente dos columnas compatibles y el resultado final debe contener seis filas, desde Ana Torres · cliente hasta Ratón · producto.

Compatibilidad entre motores

UNION está ampliamente disponible. Los detalles sobre conversiones de tipo, ordenación, límites y paréntesis pueden variar. Cuando los SELECT son complejos, prueba cada bloque por separado antes de unirlos.

Qué debes recordar

  • UNION apila resultados compatibles.
  • Elimina filas completas duplicadas.
  • ORDER BY se aplica al resultado combinado.
  • UNION ALL conserva todas las apariciones.

Conceptos relacionados

Fuentes técnicas

La explicación se ha contrastado con documentación oficial: