ホームページ > データベース > SQL > SQLのunionとunion allの違い

SQLのunionとunion allの違い

下次还敢
リリース: 2024-05-02 02:57:17
オリジナル
909 人が閲覧しました

UNION は一意の行のみを返しますが、UNION ALL には重複行が含まれます。UNION はマージ前に行の重複を排除しますが、UNION ALL は行の重複を排除しません。

SQLのunionとunion allの違い

#SQL における UNION と UNION ALL の違い

UNION と UNION ALL はどちらも、2 つまたは複数のテーブルの行に対する SQL 演算子。ただし、重複行の処理方法には根本的な違いがあります。

UNION

    結果テーブル内の固有の (重複しない) 行のみを返します。
  • テーブルを結合する前に、各テーブルの行の重複が排除されます。
  • いずれかのテーブルに重複行が存在する場合、それらは結果テーブルに 1 回だけ表示されます。

UNION ALL

    重複行を含むすべての行を返します。
  • 個々のテーブルの行は重複排除されません。
  • いずれかのテーブルに重複行が存在する場合、それらは結果テーブルに複数回表示されます。

以下に示すように、2 つのテーブル T1 と T2 があるとします。

<code>T1:
+----+----+
| ID | Name |
+----+----+
| 1  | John |
| 2  | Susan |
| 3  | Mary |
+----+----+

T2:
+----+----+
| ID | Name |
+----+----+
| 2  | Susan |
| 4  | Bob |
+----+----+</code>
ログイン後にコピー
UNION 演算子を使用してマージする場合これら 2 つのテーブル:

<code>SELECT * FROM T1 UNION SELECT * FROM T2;</code>
ログイン後にコピー
結果は次のようになります:

<code>+----+----+
| ID | Name |
+----+----+
| 1  | John |
| 2  | Susan |
| 3  | Mary |
| 4  | Bob |
+----+----+</code>
ログイン後にコピー
ここで、重複行 (ID = 2、名前 = Susan) が削除されています。

UNION ALL 演算子を使用してこれら 2 つのテーブルをマージすると:

<code>SELECT * FROM T1 UNION ALL SELECT * FROM T2;</code>
ログイン後にコピー
結果は次のようになります:

<code>+----+----+
| ID | Name |
+----+----+
| 1  | John |
| 2  | Susan |
| 2  | Susan |
| 3  | Mary |
| 4  | Bob |
+----+----+</code>
ログイン後にコピー
ここで、重複行はすでに結果に含まれています。

以上がSQLのunionとunion allの違いの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート