Video tutorial del operador SQL UNION con MySql

OPERADOR SQL UNION

El operador UNION se utiliza cuando se necesita combinar los resultados de dos consultas diferentes. Los resultados no tienen que tener ninguna vinculación entre ellos; se quiere mostrar todos los resultados juntos.

A través del operador UNION se pueden juntar los resultados de dos o más consultas SELECT.

SINTAXIS DEL OPERADOR SQL UNION

SELECT column_name(s) FROM table1
UNION
SELECT column_name(s) FROM table2;

El operador UNION se coloca entre las dos consultas para indicarle a la base de datos que queremos que los resultados de cada selección se presenten juntos en el resultado.

Los nombres de las columnas que aparecen en el resultado de una UNION son normalmente iguales al nombre de las columnas de la primera selección de la UNION.

EJEMPLO SQL UNION

Vamos a unir los resultados de las tablas "publisher" y "publisher3";

TABLA PUBLISHER TABLA PUBLISHER3

 

Unimos las columnas "names" de nuestras tablas con la siguiente sentencia SQL;

SELECT name FROM eli.publisher3 
UNION
SELECT name FROM eli.publisher;


Para ver el resultado utilizamos MySql Workbench;

Para utilizar el operador UNION hay que tener en cuenta las siguientes reglas;

  1. Cada consulta debe producir el mismo número de columnas;
  2. Los tipos de datos de las columnas deben ser los mismos o al menos la base de datos debe poder convertir esos datos para que sean los mismos.El tipo de dato de cada columna se determinó en la creación de la tabla. Si no se está seguro del tipo de dato de una columna, se puede ver en la base de datos.

UNION ALL

En el ejemplo del operador UNION, vemos que se devuelve sólo los nombres que son únicos. Si quieres que se devuelvan todos los datos de la base de datos, aunque estén repetidos, hay que utilizar la claúsula ALL, como vemos en la siguiente sentencia SQL:

   SELECT name FROM eli.publisher3 
   UNION ALL
   SELECT name FROM eli.publisher;


A continuación vemos que aparecen todos los registros, incluidos "eli" y "edu4java", repetido dos veces;

 


Claúsula ORDER BY utilizado con UNION

La claúsula ORDER BY se escribe al final de las sentencias UNION y se refiere a la primera consulta SELECT.

En DB2 de IBM, la claúsula ORDER BY se escribe al final solamente si el nombre de la columna que se ordena aparece en todas las consultas.

En Oracle, la sintaxis del operador UNION es diferente. No se especifica el nombre del columna a ordenar, si no la posición donde aparece la columna dentro del SELECT.

<< Anterior Siguiente >>