UNION especificando explícitamente UNION ALL o UNION DISTINCT.
Si no especifica ALL ni DISTINCT, dependerá de la configuración union_default_mode. La diferencia entre UNION ALL y UNION DISTINCT es que UNION DISTINCT aplicará una operación de eliminación de duplicados al resultado de la unión; es equivalente a SELECT DISTINCT sobre una subconsulta que contiene UNION ALL.
Puede usar UNION para combinar cualquier número de consultas SELECT uniendo sus resultados. Ejemplo:
Query
SELECT). Si los nombres de las columnas no coinciden, los nombres del resultado final se toman de la primera consulta.
La conversión de tipos se realiza en las uniones. Por ejemplo, si dos consultas que se combinan tienen el mismo campo con tipos Nullable y no Nullable de un tipo compatible, el UNION resultante tendrá un campo de tipo Nullable.
Las consultas que forman parte de UNION pueden ir entre (). ORDER BY y LIMIT se aplican a cada consulta por separado, no al resultado final. Si necesita aplicar una conversión al resultado final, puede colocar todas las consultas con UNION en una subconsulta en la cláusula FROM.
Si usa UNION sin especificar explícitamente UNION ALL o UNION DISTINCT, puede indicar el modo de unión mediante la configuración union_default_mode. Los valores de esta configuración pueden ser ALL, DISTINCT o una cadena vacía. Sin embargo, si usa UNION con la configuración union_default_mode establecida en una cadena vacía, se lanzará una excepción. Los siguientes ejemplos muestran los resultados de las consultas con distintos valores de esta configuración.
Query
Response
Query
Response
UNION/UNION ALL/UNION DISTINCT pueden ejecutarse simultáneamente y sus resultados pueden mezclarse.
Ver también
- Configuración insert_null_as_default.
- Configuración union_default_mode.