Operador UNION de MySQL
El operador UNION de MySQL
El UNION
operador se utiliza para combinar el conjunto de resultados de dos o más
SELECT
declaraciones.
- Cada
SELECT
declaración dentroUNION
debe tener el mismo número de columnas - Las columnas también deben tener tipos de datos similares.
- Las columnas en cada
SELECT
declaración también deben estar en el mismo orden
Sintaxis de UNIÓN
SELECT column_name(s) FROM table1
UNION
SELECT column_name(s) FROM table2;
UNION ALL Sintaxis
El UNION
operador selecciona solo valores distintos por defecto. Para permitir valores duplicados, utilice UNION ALL
:
SELECT column_name(s) FROM table1
UNION ALL
SELECT column_name(s) FROM table2;
Nota: Los nombres de las columnas en el conjunto de resultados suelen ser iguales a los nombres de las columnas en la primera SELECT
declaración.
Base de datos de demostración
En este tutorial utilizaremos la conocida base de datos de ejemplo Northwind.
A continuación se muestra una selección de la tabla "Clientes":
CustomerID | CustomerName | ContactName | Address | City | PostalCode | Country |
---|---|---|---|---|---|---|
1 |
Alfreds Futterkiste | Maria Anders | Obere Str. 57 | Berlin | 12209 | Germany |
2 | Ana Trujillo Emparedados y helados | Ana Trujillo | Avda. de la Constitución 2222 | México D.F. | 05021 | Mexico |
3 | Antonio Moreno Taquería | Antonio Moreno | Mataderos 2312 | México D.F. | 05023 | Mexico |
Y una selección de la tabla "Proveedores":
SupplierID | SupplierName | ContactName | Address | City | PostalCode | Country |
---|---|---|---|---|---|---|
1 | Exotic Liquid | Charlotte Cooper | 49 Gilbert St. | London | EC1 4SD | UK |
2 | New Orleans Cajun Delights | Shelley Burke | P.O. Box 78934 | New Orleans | 70117 | USA |
3 | Grandma Kelly's Homestead | Regina Murphy | 707 Oxford Rd. | Ann Arbor | 48104 | USA |
Ejemplo de UNIÓN SQL
La siguiente instrucción SQL devuelve las ciudades (solo valores distintos) de las tablas "Clientes" y "Proveedores":
Ejemplo
SELECT City FROM Customers
UNION
SELECT City FROM Suppliers
ORDER BY City;
Nota: Si algunos clientes o proveedores tienen la misma ciudad, cada ciudad solo aparecerá una vez, porque UNION
selecciona solo valores distintos. ¡ Úselo
UNION ALL
para seleccionar también valores duplicados!
SQL UNION TODO Ejemplo
La siguiente instrucción SQL devuelve las ciudades (también valores duplicados) de las tablas "Clientes" y "Proveedores":
Ejemplo
SELECT City FROM Customers
UNION ALL
SELECT City FROM Suppliers
ORDER BY City;
UNIÓN SQL con DONDE
La siguiente instrucción SQL devuelve las ciudades alemanas (solo valores distintos) de las tablas "Clientes" y "Proveedores":
Ejemplo
SELECT City, Country FROM Customers
WHERE Country='Germany'
UNION
SELECT City, Country FROM Suppliers
WHERE Country='Germany'
ORDER BY City;
SQL UNION TODO con DONDE
La siguiente instrucción SQL devuelve las ciudades alemanas (también valores duplicados) de las tablas "Clientes" y "Proveedores":
Ejemplo
SELECT City, Country FROM Customers
WHERE Country='Germany'
UNION ALL
SELECT City, Country FROM Suppliers
WHERE Country='Germany'
ORDER BY City;
Otro ejemplo de UNIÓN
La siguiente instrucción SQL enumera todos los clientes y proveedores:
Ejemplo
SELECT 'Customer' AS Type, ContactName, City, Country
FROM Customers
UNION
SELECT 'Supplier', ContactName, City, Country
FROM Suppliers;
Observe el "Tipo AS" anterior: es un alias. Los alias de SQL se utilizan para dar a una tabla o columna un nombre temporal. Un alias solo existe mientras dura la consulta. Entonces, aquí hemos creado una columna temporal llamada "Tipo", que indica si la persona de contacto es un "Cliente" o un "Proveedor".