Resumen: En este tutorial, aprenderá a usar MySQL UNION
operador para combinar dos o más conjuntos de resultados de múltiples SELECT
instrucciones en un solo conjunto de resultados.
MySQL UNION operator
MySQL UNION
operator le permite combinar dos o más conjuntos de resultados de consultas en un solo conjunto de resultados., Lo siguiente ilustra la sintaxis del operador UNION
:
para combinar el conjunto de resultados de dos o más consultas utilizando el operador UNION
, estas son las reglas básicas que debe seguir:
- Primero, el número y el orden de las columnas que aparecen en todos
SELECT
deben ser las mismas. - En segundo lugar, los tipos de datos de las columnas deben ser los mismos o compatibles.,
de forma predeterminada, el operador UNION
elimina filas duplicadas incluso si no especifica el operador DISTINCT
explícitamente.,
veamos las siguientes tablas de ejemplo: t1
y t2
:
la siguiente instrucción combina conjuntos de resultados devueltos desde t1
y t2
tablas:
Code language: SQL (Structured Query Language) (sql)
el conjunto de resultados final contiene los valores distintos de conjuntos de resultados separados devueltos por las consultas:
Code language: SQL (Structured Query Language) (sql)
debido a que las filas con valores 2 y 3 son duplicados, el UNION
los eliminó y mantuvo solo valores únicos.,
El siguiente diagrama de Venn que ilustra la unión de dos conjuntos de resultados que provienen de t1
y t2
tablas:
Si utiliza la etiqueta UNION ALL
explícitamente, las filas duplicadas, si está disponible, permanecer en el resultado. Debido a que UNION ALL
no necesita manejar duplicados, funciona más rápido que UNION DISTINCT
.,
Code language: SQL (Structured Query Language) (sql)
Code language: SQL (Structured Query Language) (sql)
Como puede ver, los duplicados aparecen en el resultado combinado conjunto debido a la UNION ALL
operación.
UNION vs. JOIN
A JOIN
combina conjuntos de resultados horizontalmente, a UNION
añade conjuntos de resultados verticalmente.,base de datos ple para la demostración:
supongamos que desea combinar el nombre y apellido de los empleados y clientes en un solo conjunto de resultados, puede usar el UNION
operador como sigue:
Code language: SQL (Structured Query Language) (sql)
como se puede ver en la salida, el MySQL UNION
utiliza los nombres de columna de la primera instrucción SELECT
para los encabezados de columna de la salida.,
si desea utilizar otros encabezados de columna, debe usar alias de columna explícitamente en la primera instrucción SELECT
como se muestra en el siguiente ejemplo:
este ejemplo utiliza el encabezado de columna de la primera consulta para la salida. Utiliza la función CONCAT()
para concatenar el nombre, el espacio y el apellido en un nombre completo.,
MySQL de la UNIÓN y el ORDEN POR
Si desea ordenar el conjunto de resultados de una unión, usar un ORDER BY
cláusula en los últimos SELECT
declaración, como se muestra en el siguiente ejemplo:
Observe que si usted coloca la etiqueta ORDER BY
cláusula en cada SELECT
declaración, no afecta el orden de las filas en el conjunto de resultados finales.,
para diferenciar entre empleados y clientes, puede agregar una columna como se muestra en la siguiente consulta:
MySQL también le proporciona una opción alternativa para ordenar un conjunto de resultados basado en b291c93bf1 » >
cláusula de la siguiente manera:
sin embargo, no es una buena práctica ordenar el conjunto de resultados por posición de columna.
en este tutorial, ha aprendido a usar MySQL UNION
instrucción para combinar datos de múltiples consultas en un solo conjunto de resultados.,
- ¿Fue útil este tutorial?
- YesNo