English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
En este tutorial, aprenderás a combinar los resultados de dos o más consultas SQL.
El operador UNION se utiliza para combinar los resultados de dos o más consultas SELECT en un solo conjunto de resultados. La operación UNION es diferente de la unión de columnas de dos tablas. El operador UNION coloca todas las filas de dos tablas de origen en una tabla de resultados, creando así una nueva tabla.
A continuación, se presentan las reglas básicas para usar UNION para combinar los resultados de dos consultas SELECT:
En todas las consultas, la cantidad y el orden de las columnas deben ser idénticos.
El tipo de datos de las columnas correspondientes debe ser compatible.
Cuando se cumplen estas condiciones, estas tablas son compatibles en combinación (union-compatible):
Gramática básica de UNION:
SELECT column_list FROM table1_name UNION SELECT column_list FROM table2_name;
Para entender mejor la operación de unión, supongamos que en las tablas employees y clientes existen algunos campos hipotéticos, como first_name y last_name. Tenga en cuenta que estos campos realmente no existen en nuestras tablas de demostración de base de datos.
+----+------------+-----------+--------+ | id | first_name | last_name | salario | +----+------------+-----------+--------+ | 1 | Ethan | Hunt | 5000 | | 2 | Tony | Montana | 6500 | | 3 | Sarah | Connor | 8000 | | 4 | Rick | Deckard | 7200 | | 5 | Martin | Blank | 5600 | +----+------------+-----------+--------+ | +----+------------+-----------+----------+ | id | first_name | last_name | ciudad | +----+------------+-----------+----------+ | 1 | Maria | Anders | Berlín | | 2 | Fran | Wilson | Madrid | | 3 | Dominique | Perrier | París | | 4 | Martin | Blank | Turín | | 5 | Thomas | Hardy | Portland | +----+------------+-----------+----------+ | |
Tabla: empleados | Tabla: clientes |
Vamos a ejecutar la operación de unión para combinar los resultados de dos consultas.
La siguiente instrucción devuelve los nombres y apellidos de todos los clientes y empleados:
SELECT first_name, last_name FROM employees UNION SELECT first_name, last_name FROM customers;
Ejecutar la siguiente instrucción, el conjunto de resultados será como se muestra a continuación:
+---------------+--------------+ | first_name | last_name | +---------------+--------------+ | Ethan | Hunt | | Tony | Montana | | Sarah | Connor | | Rick | Deckard | | Martin | Blank | | Maria | Anders | | Fran | Wilson | | Dominique | Perrier | | Thomas | Hardy | +---------------+--------------+
Por defecto, el operador UNION elimina las filas repetidas del conjunto de resultados combinado. Por eso, la consulta anterior solo devuelve9filas, si observa que el nombre "Martin Blank" aparece simultáneamente en las tablas employees y customers.
Pero, si desea conservar las filas repetidas, puede usar la palabra clave ALL, como se muestra a continuación:
SELECT first_name, last_name FROM employees UNION ALL SELECT first_name, last_name FROM customers;