English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Operador UNION MySQL

Este tutorial les presenta la sintaxis y los ejemplos del operador UNION de MySQL.

El operador UNION de MySQL se utiliza para combinar los resultados de dos o más consultas SELECT en una colección de resultados. Las consultas SELECT múltiples eliminarán los datos repetidos.

Sintaxis

Formato de sintaxis del operador UNION de MySQL:

SELECT expresión1, expresión2, ... expresión_n
FROM tablas
[WHERE condiciones]
UNION [ALL | DISTINCT]
SELECT expresión1, expresión2, ... expresión_n
FROM tablas
[WHERE condiciones];

parámetros

  • expresión1, expresión2, ... expresión_n: Columnas a buscar.

  • tablas: Tabla de datos a buscar.

  • WHERE condiciones: Opcional, condiciones de búsqueda.

  • DISTINCT: Opcional, eliminar datos duplicados del conjunto de resultados. Por defecto, el operador UNION ya elimina los datos duplicados, por lo que el modificador DISTINCT no tiene efecto en los resultados.

  • ALL: Opcional, devolver todos los conjuntos de resultados, incluyendo datos duplicados.

base de demostración

En este tutorial, utilizaremos w3base de datos de ejemplo de codebox.

A continuación se muestra los datos seleccionados de la tabla "Websites":

mysql> SELECT * FROM Websites;
+----+--------------+---------------------------+-------+---------+
| id | name  | url  | alexa  | country |
+----+--------------+---------------------------+-------+---------+
| 1  | Google  | https://www.google.cm/    | 1     | USA  |
| 2  | 淘宝  | https://www.taobao.com/   | 13    | CN  |
| 3  | 基础教程网  | http://es.oldtoolbag.com/    | 4689  | CN  |
| 4  | 微博  | http://weibo.com/         | 20    | CN  |
| 5  | Facebook  | https://www.facebook.com/ | 3     | USA  |
| 7  | stackoverflow | http://stackoverflow.com/ |   0 | IND  |
+----+---------------+---------------------------+-------+---------+

A continuación se muestra los datos de la APP "apps":

mysql> SELECT * FROM apps;
+----+------------+-------------------------+---------+
| id | app_name  | url  | country |
+----+------------+-------------------------+---------+
|  1 | QQ APP  | http://im.qq.com/       | CN  |
|  2 | 微博 APP | http://weibo.com/       | CN  |
|  3 | 淘宝 APP | https://www.taobao.com/ | CN  |
+----+------------+-------------------------+---------+
3 filas en conjunto (0.00 seg)

Ejemplo de UNION SQL

La siguiente sentencia SQL selecciona todos los registros de las tablas "Websites" y "apps"Diferentescountry (solo valores diferentes):

SELECT country FROM Websites
UNION
SELECT country FROM apps
ORDER BY country;

El resultado de ejecutar el siguiente SQL es el siguiente:

Nota:UNION no se puede usar para listar todos los country de dos tablas. Si algunos sitios web y APP vienen de un mismo país, solo se listará una vez por país. UNION solo seleccionará valores diferentes. ¡Use UNION ALL para seleccionar valores repetidos!

Ejemplo de UNION ALL SQL

La siguiente sentencia SQL utiliza UNION ALL para seleccionar de las tablas "Websites" y "apps"Todos loscountry (también hay valores repetidos):

SELECT country FROM Websites
UNION ALL
SELECT country FROM apps
	ORDER BY country;

El resultado de ejecutar el siguiente SQL es el siguiente:

UNION ALL con WHERE

La siguiente sentencia SQL utiliza UNION ALL para seleccionar de las tablas "Websites" y "apps"Todos losLos datos de China (CN) (también hay valores repetidos):

Ejemplo en línea

SELECT country, name FROM Websites
WHERE country='CN'
UNION ALL
	SELECT country, app_name FROM apps
WHERE country='CN'
ORDER BY 
	country;

El resultado de ejecutar el siguiente SQL es el siguiente: