Saltar al contenido principal
Documentos
FuncionesExpresionesKeywordsDeclaracionesCláusulas

Cláusula UNION ALL de MySQL

La cláusula `UNION ALL` de MySQL se utiliza para combinar los resultados de dos o más sentencias `SELECT`. A diferencia de `UNION`, incluye las filas duplicadas en el conjunto de resultados final.

Utilización

La cláusula `UNION ALL` se utiliza cuando necesitas combinar los resultados de varias consultas sin eliminar las entradas duplicadas. Es especialmente útil para agregar conjuntos de datos en los que los duplicados son significativos y deben conservarse.

SELECT column1, column2, ...
FROM table1
UNION ALL
SELECT column1, column2, ...
FROM table2;

En esta sintaxis, `UNION ALL` fusiona los resultados de ambas sentencias `SELECT`, incluidas las filas duplicadas.

Ejemplos

1. Básico UNIÓN TODOS

SELECT name FROM students
UNION ALL
SELECT name FROM alumni;

Este ejemplo combina nombres de las tablas "alumnos" y "antiguos alumnos", incluyendo duplicados si algún nombre aparece en ambas tablas.

2. UNION ALL con diferentes columnas

SELECT id, name FROM employees
UNION ALL
SELECT employee_id, full_name FROM contractors;

Aquí, `UNION ALL` combina las columnas `id` y `name` de `employees` con `employee_id` y `full_name` de `contractors`. Ambas consultas deben tener el mismo número de columnas en el mismo orden, y sus tipos de datos deben ser compatibles para evitar errores.

3. Utilizar UNION ALL con condiciones

SELECT product_id, description FROM products WHERE category = 'Electronics'
UNION ALL
SELECT product_id, description FROM discontinued_products WHERE category = 'Electronics';

Este ejemplo combina productos y productos descatalogados dentro de la categoría "Electrónica", conservando todos los duplicados.

4. Utilizar UNION ALL con ORDER BY

SELECT id, name FROM employees
UNION ALL
SELECT employee_id, full_name FROM contractors
ORDER BY name;

Este ejemplo demuestra la aplicación de "ORDENAR POR" al conjunto de resultados final para garantizar que los resultados combinados se ordenan por nombre.

Consejos y buenas prácticas

  • Asegúrate de la compatibilidad de las columnas. Todas las sentencias `SELECT` deben tener el mismo número de columnas con tipos de datos compatibles para evitar errores.
  • Preserva los duplicados significativos. Utiliza "UNIR TODO" cuando las filas duplicadas sean beneficiosas para tus necesidades de análisis o elaboración de informes.
  • Optimiza el rendimiento de la consulta. Ten en cuenta que utilizar "UNION ALL" con grandes conjuntos de datos puede afectar al rendimiento; considera la posibilidad de indexar las columnas críticas. Utiliza la sentencia `EXPLAIN` para analizar el plan de consulta en busca de oportunidades de optimización.
  • Utiliza la ordenación explícita. Si el orden es importante, aplica `ORDENAR POR` al conjunto de resultados final, no a las consultas individuales dentro de `UNIR TODO`.
  • Tratamiento de errores. Asegúrate de que las columnas de todas las sentencias `SELECT` tienen recuentos coincidentes y tipos de datos compatibles para evitar errores de ejecución.

Perfeccionamiento de SQL para principiantes

Adquiere los conocimientos de SQL para interactuar con tus datos y consultarlos.
Empieza a aprender gratis