SELECT ... UNION [ALL | DISTINCT] SELECT ... [UNION [ALL | DISTINCT] SELECT ...]
          UNION se usa para combinar el resultado de
          un número de comandos SELECT en un
          conjunto de resultados.
        
          Las columnas seleccionadas lisatadas en posiciones
          correspondientes de cada comando SELECT
          deben tener el mismo tipo. (Por ejemplo, la primera columna
          seleccionada por el primer comando debe tener el mismo tipo
          que la primer columna seleccionada por otros comandos.) Los
          nombres de columna usados por el primer comando
          SELECT se usan como nombres de columna para
          los resultados retornados.
        
          Los comandos SELECT son comandos select
          normales, pero con las siguientes restricciones:
        
              Sólo el último comando SELECT puede
              usar INTO OUTFILE.
            
              HIGH_PRIORITY no puede usarse con
              comandos SELECT que sean parte de una
              UNION. Si lo especifica para el primer
              SELECT, no tiene efecto. Si lo
              especifica para cualquier SELECT
              posterior, aparece un error de sintaxis.
            
          Si no usa la palabra clave ALL para
          UNION, todos los registros retornados son
          únicos, como si hubiera hecho un DISTINCT
          para el conjunto de resultados total. Si especifica
          ALL, obtiene todos los registros
          coincidentes de todos los comandos SELECT
          usados.
        
          La palabra clave DISTINCT es una palabra
          opcional que no tiene efecto, pero se permite en la sintaxis
          como requiere el estándar SQL . (En MySQL,
          DISTINCT representa el comportamiento por
          defecto de una union.)
        
          En MySQL 5.0, puede mezclar UNION ALL y
          UNION DISTINCT en la misma consulta. Tipos
          de UNION mezclados se tratan de forma que
          una unión DISTINCT sobreescribe cualquier
          unión ALL a su izquierda. Una unión
          DISTINCT puede producirse explícitamente
          usando UNION DISTINCT o implícitamente
          usando UNION sin palabra clave
          DISTINCT o ALL a
          continuación.
        
          Si quiere usar una cláusula ORDER BY o
          LIMIT para ordenar o limitar el resultado
          UNION entero, ponga entre paréntesis los
          comandos SELECT individuales y ponga el
          ORDER BY o LIMIT tras el
          último. El siguiente ejemplo usa ambas cláusulas:
        
(SELECT a FROMtbl_nameWHERE a=10 AND B=1) UNION (SELECT a FROMtbl_nameWHERE a=11 AND B=2) ORDER BY a LIMIT 10;
          Este tipo de ORDER BY no puede usar
          referencias de columnas que incluyan un nombre de columna
          (esto es, nombres en formato
          tbl_name.col_name ). En su lugar,
          proporcione un alias de columna al primer comando
          SELECT y refiérase al alias en el
          ORDER BY, o a la columna en el
          ORDER BY usando su posición de columna.
          (Un alias es preferible porque el uso de la posición de la
          columna está obsoleto.)
        
          Para aplicar ORDER BY o
          LIMIT a un SELECT
          individual, ponga la cláusula dentro de los paréntesis
          alrededor del SELECT:
        
(SELECT a FROMtbl_nameWHERE a=10 AND B=1 ORDER BY a LIMIT 10) UNION (SELECT a FROMtbl_nameWHERE a=11 AND B=2 ORDER BY a LIMIT 10);
          Los ORDER BY para comandos
          SELECT individuales entre paréntesis
          tienen efecto sólo al combinarlos con
          LIMIT. De otro modo, el ORDER
          BY se optimiza a parte.
        
          En MySQL 5.0, los tipos y longitudes de las columnas en el
          conjunto de resultados de una UNION tienen
          en cuenta los valores recibidos por todos los comandos
          SELECT. Por ejemplo, considere lo
          siguiente:
        
mysql> SELECT REPEAT('a',1) UNION SELECT REPEAT('b',10);
+---------------+
| REPEAT('a',1) |
+---------------+
| a             |
| bbbbbbbbbb    |
+---------------+
(En alguna versión anterior de MySQL, el segundo registro se habría truncado a una longitud de 1.)
Ésta es una traducción del manual de referencia de MySQL, que puede encontrarse en dev.mysql.com. El manual de referencia original de MySQL está escrito en inglés, y esta traducción no necesariamente está tan actualizada como la versión original. Para cualquier sugerencia sobre la traducción y para señalar errores de cualquier tipo, no dude en dirigirse a mysql-es@vespito.com.

