> Manuales > Tutorial de SQL

Cómo funcionan y cómo se crean estas consultas en SQL.

Se utiliza la operación UNION para crear una consulta de unión, combinando los resultados de dos o más consultas o tablas independientes. Su sintaxis es:

[TABLE] consulta1 UNION [ALL] [TABLE]
consulta2 [UNION [ALL] [TABLE] consultan [ ... ]]

En donde:

consulta 1,consulta 2, consulta nSon instrucciones SELECT, el nombre de una consulta almacenada o el nombre de una tabla almacenada precedido por la palabra clave TABLE.

Puede combinar los resultados de dos o más consultas, tablas e instrucciones SELECT, en cualquier orden, en una única operación UNION. El ejemplo siguiente combina una tabla existente llamada Nuevas Cuentas y una instrucción SELECT:

TABLE
   NuevasCuentas
UNION ALL
SELECT *
FROM
   Clientes
WHERE
   CantidadPedidos > 1000

Si no se indica lo contrario, no se devuelven registros duplicados cuando se utiliza la operación UNION, no obstante puede incluir el predicado ALL para asegurar que se devuelven todos los registros. Esto hace que la consulta se ejecute más rápidamente. Todas las consultas en una operación UNION deben pedir el mismo número de campos, no obstante los campos no tienen porqué tener el mismo tamaño o el mismo tipo de datos.

Se puede utilizar una cláusula GROUP BY y/o HAVING en cada argumento consulta para agrupar los datos devueltos. Puede utilizar una cláusula ORDER BY al final del último argumento consulta para visualizar los datos devueltos en un orden específico.

SELECT
    NombreCompania, Ciudad
FROM
   Proveedores
WHERE
   Pais = 'Brasil'
UNION
   SELECT NombreCompania, Ciudad
   FROM Clientes
   WHERE Pais = 'Brasil'

(Recupera los nombres y las ciudades de todos proveedores y clientes de Brasil)

SELECT
   NombreCompania, Ciudad
FROM
   Proveedores
WHERE
   Pais = 'Brasil'
UNION
   SELECT NombreCompania, Ciudad
   FROM Clientes
   WHERE Pais = 'Brasil'
   ORDER BY Ciudad

(Recupera los nombres y las ciudades de todos proveedores y clientes radicados en Brasil, ordenados por el nombre de la ciudad)

SELECT
   NombreCompania, Ciudad
FROM
   Proveedores
WHERE
   Pais = 'Brasil'
UNION
   SELECT NombreCompania, Ciudad
   FROM Clientes
   WHERE Pais = 'Brasil'
UNION
   SELECT Apellidos, Ciudad
   FROM Empleados
   WHERE Region = 'América del Sur'

(Recupera los nombres y las ciudades de todos los proveedores y clientes de brasil y los apellidos y las ciudades de todos los empleados de América del Sur)

TABLE
   Lista_Clientes
UNION TABLE
   ListaProveedores

(Recupera los nombres y códigos de todos los proveedores y clientes)

Claudio

Manual