Ir al contenido principal
Documentos
FuncionesExpresionesKeywordsDeclaracionesCláusulas

Cláusula UNION de MySQL

La cláusula `UNION` de MySQL se utiliza para combinar los conjuntos de resultados de dos o más consultas `SELECT` en un único conjunto de resultados. Garantiza que los resultados sean distintos, eliminando las filas duplicadas.

Utilización

La cláusula `UNION` se aplica cuando necesitas fusionar las salidas de varias sentencias `SELECT`, que deben tener el mismo número de columnas y tipos de datos compatibles. Simplifica la recuperación de datos a partir de múltiples consultas.

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

En esta sintaxis, se utiliza `UNION` para concatenar los resultados de las sentencias `SELECT` de `tabla1` y `tabla2`.

Ejemplos

1. UNIÓN básica

SELECT city
FROM customers
UNION
SELECT city
FROM suppliers;

Este ejemplo combina ciudades de las tablas "clientes" y "proveedores", eliminando los duplicados.

2. UNIÓN con diferentes filtros

SELECT product_name
FROM products
WHERE stock > 50
UNION
SELECT product_name
FROM discontinued_products
WHERE discontinued_date > '2023-01-01';

Aquí, la unión combina nombres de productos de la tabla `productos` en los que las existencias son superiores a 50 con nombres de productos de la tabla `productos_catalogados` que se dejaron de fabricar después del 1 de enero de 2023.

3. UNION ALL para incluir duplicados

SELECT employee_id, name
FROM full_time_employees
UNION ALL
SELECT employee_id, name
FROM part_time_employees;

En este caso, `UNION ALL` incluye todos los duplicados, mostrando todos los empleados de las tablas `full_time_employees` y `part_time_employees`.

4. UNIÓN con ORDENAR POR

SELECT department
FROM departments
UNION
SELECT department
FROM archived_departments
ORDER BY department;

Este ejemplo demuestra el uso de `ORDENAR POR` para ordenar los resultados combinados de los departamentos tanto de `departamentos` como de `departamentos_archivados`.

Consejos y buenas prácticas

  • Asegúrate de la compatibilidad de las columnas. El número y los tipos de datos de las columnas de cada sentencia `SELECT` deben coincidir. Las columnas no coincidentes pueden dar lugar a errores.
  • Utiliza UNION ALL para mejorar el rendimiento. Si los duplicados son aceptables, utiliza "UNIR TODO", ya que es más rápido porque no elimina los duplicados.
  • Ordena los resultados adecuadamente. Utiliza `ORDENAR POR` sólo una vez después de la última sentencia `SELECT` para ordenar todo el resultado de la unión.
  • Optimiza las consultas individuales. Asegúrate de que el rendimiento de cada consulta `SELECT` está optimizado antes de utilizar `UNION`.
  • Considera el tamaño del conjunto de datos. Los conjuntos de datos más grandes pueden afectar al rendimiento; plantéate dividir las consultas o utilizar índices para optimizarlas.

Tratamiento de errores

Ten en cuenta los posibles errores o advertencias si hay un desajuste en el número de columnas o tipos de datos entre las sentencias `SELECT`. Asegúrate de la compatibilidad de las columnas para evitar estos problemas.

Perfeccionamiento de SQL para principiantes

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