La mayoría de las consultas SQL utilizan una única declaración que devuelve datos de una o más tablas. SQL también le permite ejecutar varias consultas independientes al mismo tiempo y mostrar el resultado como un único conjunto de datos. Estas consultas combinadas suelen denominarse combinaciones o consultas compuestas.
Las consultas SQL se combinan utilizando el operador UNION. Para hacer esto, debe especificar cada solicitud SELECT y colocar la palabra clave UNION entre ellas. No hay límite para la cantidad de usos del operador UNION en una consulta general. En la sección anterior notamos que MS Access no tiene la capacidad de crear una unión externa completa, ahora veremos cómo esto se puede lograr a través del operador UNION.
Run SQLSELECT *
FROM Sumproduct
LEFT JOIN Sellers2
ON Sumproduct.City = Sellers2.City
UNION
SELECT *
FROM Sumproduct
RIGHT JOIN Sellers2
ON Sumproduct.City = Sellers2.City
Vemos que la consulta muestra todas las columnas de la primera tabla y de la segunda, independientemente de si todos los registros tienen contrapartes en otra tabla.
También vale la pena señalar que en muchos casos, en lugar de UNION, podemos usar la cláusula WHERE con muchas condiciones y obtener un resultado similar. Sin embargo, a través de UNION, los registros parecen más concisos y claros.
También es necesario seguir ciertas reglas al escribir consultas combinadas:
Una consulta con UNION elimina automáticamente todas las filas duplicadas del conjunto de resultados de la consulta (en otras palabras, se comporta como una cláusula WHERE con múltiples condiciones en una sola declaración SELECT). Este es el comportamiento predeterminado del operador UNION, pero podemos cambiarlo si queremos. Para ello deberíamos utilizar el operador UNION ALL en lugar de UNION.
Los resultados de la declaración SELECT se ordenan utilizando la declaración ORDER BY. Al combinar consultas usando UNION, solo se puede usar una cláusula ORDER BY y debe colocarse en la última declaración SELECT. De hecho, en la práctica, no tiene mucho sentido clasificar parte de los resultados en un orden y la otra parte en otro. Por lo tanto, no se permiten oraciones múltiples ORDER BY.