El propósito del comando SQL UNION es combinar los resultados de dos consultas juntas. En este sentido, UNION es parecido a Join, ya que los dos se utilizan para información relacionada en múltiples tablas. Una restricción de UNION es que todas las columnas correspondientes necesitan ser del mismo tipo de datos. También, cuando utilizamos UNION, sólo se seleccionan valores distintos (similar a SELECT DISTINCT).
El propósito del Comando SQL UNION ALL es también combinar los resultados de dos consultas juntas. La diferencia entre UNION ALL y UNION es que, mientras UNION sólo selecciona valores distintos, UNION ALL selecciona todos los valores.
La sintaxis para UNION ALL es la siguiente:
[Instrucción SQL 1]
UNION ALL
[Instrucción SQL 2]
Utilicemos el mismo ejemplo de la sección anterior para ilustrar la diferencia. Supongamos que tenemos las siguientes dos tablas,
Tabla Store_Information
| store_name | Sales | Date |
| Los Angeles | 1500 € | 05-Jan-1999 |
| San Diego | 250 € | 07-Jan-1999 |
| Los Angeles | 300 € | 08-Jan-1999 |
| Boston | 700 € | 08-Jan-1999 |
Tabla Internet_Sales
| Date | Sales |
| 07-Jan-1999 | 250 € |
| 10-Jan-1999 | 535 € |
| 11-Jan-1999 | 320 € |
| 12-Jan-1999 | 750 € |
y deseamos encontrar las fechas en donde se realizó una operación de venta en un negocio como así también las fechas donde hay una venta a través de Internet. Para hacerlo, utilizamos la siguiente instrucción SQL:
SELECT Date FROM Store_InformationUNION ALL
SELECT Date FROM Internet_Sales