UNION y UNION ALL son operadores en SQL que permiten combinar los resultados de dos o más consultas SELECT.
La principal diferencia entre ellos es cómo manejan los duplicados:
UNION elimina automáticamente las filas duplicadas en el resultado combinado, dejando solo filas únicas. Es útil cuando necesitas evitar datos repetidos.UNION ALL incluye todos los resultados, incluso los duplicados, lo que lo hace más rápido y eficiente en rendimiento.Ambos son ideales para trabajar con datos distribuidos en múltiples tablas o consultas, pero elegir el adecuado depende de si los duplicados son relevantes para tu caso.
UNION en SQL?UNION es un operador en SQL que permite combinar los resultados de dos o más consultas SELECT en una sola lista.
Este operador elimina automáticamente los duplicados de los resultados, asegurándose de que cada fila sea única en el resultado combinado.
SELECT columna1, columna2, ...
FROM tabla1
UNION
SELECT columna1, columna2, ...
FROM tabla2; Tabla empleados_tiempo_completo:
| id | nombre | departamento |
|---|---|---|
| 1 | Ana | Ventas |
| 2 | Juan | IT |
Tabla empleados_tiempo_parcial:
| id | nombre | departamento |
|---|---|---|
| 3 | Pedro | Ventas |
| 2 | Juan | IT |
SELECT nombre, departamento
FROM empleados_tiempo_completo
UNION
SELECT nombre, departamento
FROM empleados_tiempo_parcial; | nombre | departamento |
|---|---|
| Ana | Ventas |
| Juan | IT |
| Pedro | Ventas |
En este caso, el operador UNION elimina la fila duplicada de “Juan”.
UNION ALL en SQL?UNION ALL es similar a UNION, pero no elimina los duplicados.
Este operador incluye todas las filas de las consultas, incluso si son repetidas.
SELECT columna1, columna2, ...
FROM tabla1
UNION ALL
SELECT columna1, columna2, ...
FROM tabla2; SELECT nombre, departamento
FROM empleados_tiempo_completo
UNION ALL
SELECT nombre, departamento
FROM empleados_tiempo_parcial; | nombre | departamento |
|---|---|
| Ana | Ventas |
| Juan | IT |
| Pedro | Ventas |
| Juan | IT |
En este caso, el operador UNION ALL no elimina duplicados y muestra todas las filas.
UNION ALL es más rápido que UNION al evitar la operación de comparación de duplicados.| Característica | UNION | UNION ALL |
|---|---|---|
| Elimina duplicados | Sí | No |
| Velocidad | Más lento (por eliminación de duplicados) | Más rápido (sin eliminación de duplicados) |
| Uso principal | Obtener datos únicos | Incluir todos los datos |
UNION entre tablas 🚀En SQL, el operador UNION combina los resultados de varias consultas y elimina automáticamente los registros duplicados, manteniendo solo valores únicos. 🚀
SELECT departamento
FROM empleados_tiempo_completo
UNION
SELECT departamento
FROM empleados_tiempo_parcial; Resultado:
| departamento |
|---|
| Ventas |
| IT |
UNION ALL entre tablas 🚀En SQL, UNION ALL combina los resultados de múltiples consultas sin eliminar duplicados, lo que mejora el rendimiento al incluir todos los registros, incluso los repetidos.
SELECT departamento
FROM empleados_tiempo_completo
UNION ALL
SELECT departamento
FROM empleados_tiempo_parcial; Resultado:
| departamento |
|---|
| Ventas |
| IT |
| Ventas |
| IT |
UNION ALL con subconsultas y filtros en SQL 🚀Este ejemplo muestra cómo utilizar UNION ALL dentro de una subconsulta y aplicar filtros para obtener resultados específicos, como los empleados del departamento de ventas.
SELECT *
FROM (
SELECT nombre, departamento
FROM empleados_tiempo_completo
UNION ALL
SELECT nombre, departamento
FROM empleados_tiempo_parcial
) subquery
WHERE departamento = 'Ventas';