Operaciones de conjuntos · todas las filas

UNION ALL

UNION ALL apila los resultados de consultas compatibles sin eliminar las filas repetidas.

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

Qué conserva UNION ALL

UNION ALL devuelve cada fila producida por cada SELECT. Si una fila aparece dos veces, se muestran dos apariciones.

Esto es importante cuando la repetición tiene significado: movimientos, eventos, ventas o filas procedentes de fuentes que debes contabilizar por separado.

Las consultas deben encajar

Como con UNION, cada bloque necesita el mismo número de columnas y tipos compatibles en la misma posición. Puedes añadir una columna literal para indicar el origen:

Estructura con origen
SELECT nombre, 'clientes' AS origen
FROM clientes
UNION ALL
SELECT nombre, 'empleados' AS origen
FROM empleados;

El alias final se toma normalmente del primer SELECT. Aplica ORDER BY al conjunto completo, después del último bloque.

Ejemplo guiado

Reunimos categorías de productos sin stock y de productos con precio superior a 200:

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

«Ordenadores» aparece dos veces porque cumple ambas condiciones. UNION ALL conserva esa información en lugar de convertirla en una lista única.

Por qué puede ser la opción correcta

Eliminar duplicados requiere trabajo adicional. Cuando necesitas todas las filas o sabes que los bloques no pueden solaparse, UNION ALL expresa mejor la intención y suele evitar esa fase de deduplicación.

Elegirlo solo por rendimiento sería un error si el resultado correcto exige valores únicos. Primero decide la semántica; después mide.

Error frecuente

Confundir una repetición válida con un duplicado accidental

Dos filas iguales pueden representar dos eventos reales. También pueden revelar que un JOIN o un bloque está generando más filas de las previstas. Comprueba el origen antes de añadir DISTINCT o cambiar a UNION.

Comprueba lo aprendido

Básica · apilar filas

Conserva pedidos de dos estados

Devuelve id, estado y una columna literal grupo. Reúne pedidos pendientes con el grupo «por revisar» y cancelados con «cerrado», usando UNION ALL. Ordena por id.

Compatibilidad entre motores

UNION ALL está ampliamente disponible. Las reglas sobre conversión de tipos, ordenación de expresiones y paréntesis pueden variar. Mantén los nombres, tipos y significados alineados entre bloques.

Qué debes recordar

  • UNION ALL conserva todas las filas.
  • Las repeticiones pueden ser información válida.
  • Los SELECT deben devolver columnas compatibles.
  • Usa UNION si el resultado debe ser único.

Conceptos relacionados

Documentación oficial utilizada

Estas referencias se usaron para comprobar la conservación de repeticiones y las reglas de los SELECT compuestos.