Welcome to Our Website

MySQL UNION (日本語)

概要:このチュートリアルでは、MySQLUNION演算子を使用して、複数のSELECTステートメントから二つ以上の結果セットを組み合わせて単一の結果セットにする方法を学習します。

MySQL UNION operator

MySQLUNION演算子を使用すると、複数のクエリ結果セットを単一の結果セットに結合できます。, 以下は、UNION演算子の構文を示しています。

UNION演算子を使用して複数のクエリの結果セットを結合するには、以下の基本ルールに従う必要があります。

  • まず、すべてのSELECTステートメントに表示される列の数と順序は同じでなければなりません。
  • 次に、列のデータ型は同じか互換性がある必要があります。,

デフォルトでは、UNION演算子は、DISTINCT演算子を明示的に指定しなくても、重複する行を削除します。,

次のサンプルテーブルを見てみましょう。t1およびt2:

次のステートメントは、t1およびt2テーブルから返された結果セットを組み合わせます。

Code language: SQL (Structured Query Language) (sql)

最終結果セットには、クエリによって返される個別の結果セットとは異なる値が含まれています。

Code language: SQL (Structured Query Language) (sql)

値2と3の行は重複しているため、UNIONそれらを削除し、一意の値のみを保持しました。,

次のベン図は、t1およびt2テーブルから来る二つの結果セットの和集合を示しています。

If UNION ALL明示的に使用すると、重複する行が利用可能な場合は結果に残ります。 なぜならUNION ALL重複を処理する必要はないので、UNION DISTINCTよりも高速に実行されます。,

Code language: SQL (Structured Query Language) (sql)
Code language: SQL (Structured Query Language) (sql)

ご覧のとおり、重複はUNION ALL操作のために結合された結果セットに表示されます。

UNION vs.JOIN

AJOIN結果セットを水平に結合し、UNION結果セットを垂直に追加します。,デモ用のpleデータベース:

従業員と顧客の姓と姓を単一の結果セットに組み合わせると、UNION演算子を次のように使用できます。

Code language: SQL (Structured Query Language) (sql)

出力からわかるように、mysqlUNIONは、最初のSELECTステートメントの列名を使用します。出力の列見出し。,

他の列見出しを使用する場合は、次の例に示すように、最初のSELECTステートメントで列エイリアスを明示的に使用する必要があります。

この例では、出力に対して最初のクエリの列見出しを使用します。 これは、CONCAT()関数を使用して、名、スペース、および姓を完全な名前に連結します。,

MySQL UNION and ORDER BY

unionの結果セットをソートする場合は、ORDER BY最後のSELECTステートメントで

ORDER BY句を配置した場合SELECTステートメントでは、最終結果セットの行の順序には影響しません。,

従業員と顧客を区別するために、次のクエリに示すように列を追加できます。

MySQLには、次のようにORDER BY句を使用して、列の位置に基づいて結果セットをソートする別のオプションも用意されています。ただし、結果セットを列の位置でソートすることは良い習慣ではありません。

このチュートリアルでは、MySQLUNIONステートメントを使用して、複数のクエリのデータを単一の結果セットに結合する方法を学習しました。,/p>

  • このチュートリアルは役に立ちましたか?
  • イェスノ

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です