SELECT ... UNION [ALL] SELECT ... [UNION SELECT ...]
          UNION は MySQL 4.0.0
          で導入されました。
        
          UNION は、多くの
          SELECT ステートメントを 1
          つの結果セットに結合するために使用します。
        
          SELECT の
          select_expression
          部分のカラムリストには、同じ型のカラムを指定します。最初の
          SELECT
          クエリで指定したカラム名が、返される結果のカラム名として使用されます。
        
          これらの SELECT
          コマンドは通常の SELECT
          コマンドですが、次の制限が適用されます。
        
              最後の SELECT コマンドにのみ
              INTO OUTFILE を指定できる。
            
          UNION にキーワード
          ALL
          を付けないと、総結果セットに対して
          DISTINCT
          を指定した場合と同じように、重複しない一意なレコードだけが返されます。ALL
          を指定すると、実行されたすべての
          SELECT
          ステートメントから、一致するすべてのレコードが返されます。
        
          UNION の総結果に対して
          ORDER BY
          を適用する必要があるときは、かっこを使用します。
        
(SELECT a FROM table_name WHERE a=10 AND B=1 ORDER BY a LIMIT 10) UNION (SELECT a FROM table_name WHERE a=11 AND B=2 ORDER BY a LIMIT 10) ORDER BY a;
          UNION
          の結果セット内のカラムの型と長さでは、すべての
          SELECT
          ステートメントで取り出された値が考慮されます。
          MySQL 4.1.1 より前のバージョンの
          UNION では、最初の
          SELECT
          で使用された値のみに基づいて結果の型と長さが決まる、という制約がありました。
          この場合、たとえば、最初の
          SELECT の値よりも長い値が 2
          番目の SELECT
          で取り出されると、切り捨てが行われることがあります。
        
mysql> SELECT REPEAT('a',1) UNION SELECT REPEAT('b',10);
+---------------+
| REPEAT('a',1) |
+---------------+
| a             |
| b             |
+---------------+
MySQL 4.1.1 以降、この制約はなくなりました。
mysql> SELECT REPEAT('a',1) UNION SELECT REPEAT('b',10);
+---------------+
| REPEAT('a',1) |
+---------------+
| a             |
| bbbbbbbbbb    |
+---------------+
This is a translation of the MySQL Reference Manual that can be found at dev.mysql.com. The original Reference Manual is in English, and this translation is not necessarily as up to date as the English version.

