首頁  >  文章  >  資料庫  >  sql中的union和union all的差別

sql中的union和union all的差別

下次还敢
下次还敢原創
2024-05-02 02:57:17863瀏覽

UNION只傳回唯一行,而UNION ALL包含重複行;UNION在合併前去重,UNION ALL不對行去重。

sql中的union和union all的差別

SQL 中UNION 和UNION ALL 的差異

UNION 和UNION ALL 都是用來合併兩個或多個表中的行的SQL 操作符。然而,它們在處理重複行方面存在根本差異。

UNION

  • 只傳回結果表中唯一(不重複)的行。
  • 它在合併表之前會對各個表中的行進行去重。
  • 如果任意表中存在重複行,它們將只出現在結果表中一次。

UNION ALL

  • 傳回所有行,包括重複行。
  • 它不會對各個表中的行進行去重。
  • 如果任意表中存在重複行,它們將出現在結果表中多次。

範例

假設有兩個表T1 和T2,如下:

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

T2:
+----+----+
| ID | Name |
+----+----+
| 2  | Susan |
| 4  | Bob |
+----+----+</code>

如果使用UNION 運算符合併這兩個表:

<code>SELECT * FROM T1 UNION SELECT * FROM T2;</code>

結果將是:

<code>+----+----+
| ID | Name |
+----+----+
| 1  | John |
| 2  | Susan |
| 3  | Mary |
| 4  | Bob |
+----+----+</code>

其中,重複的行(ID = 2,Name = Susan)已被刪除。

如果使用 UNION ALL 操作符合併這兩個表:

<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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn