¿Cuál es la diferencia entre UNION y UNION ALL?

¿Cuál es la diferencia entre UNION y UNION ALL?

Solución

UNION elimina los registros duplicados (donde todas las columnas de los resultados son iguales), UNION ALL no lo hace.

Hay un impacto en el rendimiento cuando se utiliza UNION en lugar de UNION ALL, ya que el servidor de la base de datos debe hacer un trabajo adicional para eliminar las filas duplicadas, pero por lo general usted no quiere los duplicados (especialmente al desarrollar informes).

Ejemplo de #UNION:

SELECT 'foo' AS bar UNION SELECT 'foo' AS bar

Resultado:

+-----+
| bar |
+-----+
| foo |
+-----+
1 row in set (0.00 sec)

UNION ALL ejemplo:

SELECT 'foo' AS bar UNION ALL SELECT 'foo' AS bar

Resultado:

+-----+
| bar |
+-----+
| foo |
| foo |
+-----+
2 rows in set (0.00 sec)
Comentarios (13)

La diferencia básica entre UNION y UNION ALL es que la operación de unión elimina las filas duplicadas del conjunto de resultados, mientras que union all devuelve todas las filas después de la unión.

desde http://zengin.wordpress.com/2007/07/31/union-vs-union-all/

Comentarios (0)

No estoy seguro de que importe la base de datos

UNION y UNION ALL deberían funcionar en todos los servidores SQL.

Deberías evitar las "Uniones" innecesarias, ya que son una gran pérdida de rendimiento. Como regla general, utilice UNION ALL si no está seguro de cuál utilizar.

Comentarios (4)