Combinación de consultas: el operador UNION

Los resultados de las consultas SQL se pueden combinar. Para ello existe el operador UNION.

Estructura general de una consulta con el operador UNION

MySQL 8.4
SELECT campos_tabla FROM nombre_tabla
UNION [ALL]
SELECT campos_tabla FROM nombre_tabla;
  • [ ]parte opcional
campos_tabla

Las columnas que selecciona cada una de las consultas. Ambas consultas deben devolver el mismo número de columnas, y las columnas en la misma posición deben tener tipos compatibles.

nombre_tabla

La tabla de la que toma los datos cada una de las consultas.

ALL

Mantiene las filas repetidas en el resultado. Sin ALL, los duplicados se eliminan.

Palabra claveOpcional
  • No confundas la combinación de consultas con la combinación de tablas: para eso sirve la cláusula JOIN.
  • No confundas tampoco la combinación de consultas con las subconsultas. Las subconsultas se ejecutan sobre tablas relacionadas.

UNION combina tablas que no están relacionadas entre sí, pero que tienen una estructura parecida.

Para que UNION funcione correctamente, las tablas resultantes de cada consulta SQL deben tener el mismo número de columnas, con tipos de datos compatibles y en el mismo orden.

Hay otros dos operadores cuyo comportamiento es muy parecido al de UNION:

  • INTERSECT Combina dos consultas SELECT, pero devuelve solo los registros del primer SELECT que tienen coincidencia en el segundo SELECT.
  • EXCEPT Combina dos consultas SELECT, pero devuelve solo los registros del primer SELECT que no tienen coincidencia en el segundo SELECT.

Ejemplos de uso

Por ejemplo, supongamos que hay que mostrar los nombres de todos los productos y los nombres de todos los miembros de la familia (una tarea bastante artificial). Como los tipos de datos coinciden, podemos hacerlo.

MySQL 8.4
SELECT DISTINCT Goods.good_name AS name FROM Goods
UNION
SELECT DISTINCT FamilyMembers.member_name AS name FROM FamilyMembers;
name
apartment fee
phone fee
bread
milk
red caviar
cinema
black caviar
cough tablets
potato
pineapples
television
vacuum cleaner
jacket
fur coat
music school fee
english school fee
Headley Quincey
Flavia Quincey
Andie Quincey
Lela Quincey
Annie Quincey
Ernest Forrest
Constance Forrest
Wednesday Addams