mysql中union和union all的用法

下次还敢
發布: 2024-04-27 04:09:15
原創
1154 人瀏覽過

MySQL 中 UNION 和 UNION ALL 用於合併結果集,差異在於處理重複行的方式。 UNION 刪除重複行,而 UNION ALL 則保留所有行。 UNION 語法:SELECT 列1, 列2, ...FROM 表1 UNION SELECT 列1, 列2, ...FROM 表2; UNION ALL 語法:SELECT 列1, 列2, ...FROM 表1 UNION ALL SELECT 列1, 列2, ...FROM 表2;

mysql中union和union all的用法

#MySQL 中UNION 與UNION ALL 的用法

#在MySQL 中,UNION 和UNION ALL 是用來合併兩個或多個SELECT 陳述式結果集的運算子。它們的主要區別在於如何處理重複行。

UNION

UNION 運算子在合併結果集時會自動刪除重複行。它僅傳回每個結果集中的唯一行。

UNION ALL

UNION ALL 運算子在合併結果集時將保留所有行,包括重複行。它將兩個或多個結果集中的所有行簡單地連接在一起。

用法

UNION 和UNION ALL 的語法如下:

<code class="sql">SELECT 列1, 列2, ...
FROM 表1
UNION
SELECT 列1, 列2, ...
FROM 表2;

SELECT 列1, 列2, ...
FROM 表1
UNION ALL
SELECT 列1, 列2, ...
FROM 表2;</code>
登入後複製

範例

假設我們有兩個表StudentsTeachers:

<code class="sql">CREATE TABLE Students (
  id INT NOT NULL PRIMARY KEY,
  name VARCHAR(255) NOT NULL
);

CREATE TABLE Teachers (
  id INT NOT NULL PRIMARY KEY,
  name VARCHAR(255) NOT NULL
);</code>
登入後複製

#現在,我們可以使用UNION 和UNION ALL 來組合這兩個表的name# 列:

<code class="sql">-- 使用 UNION 移除重复行
SELECT name
FROM Students
UNION
SELECT name
FROM Teachers;

-- 使用 UNION ALL 保留所有行,包括重复行
SELECT name
FROM Students
UNION ALL
SELECT name
FROM Teachers;</code>
登入後複製

注意事項

  1. UNION 和UNION ALL 的結果集必須具有相同數量的列和對應列的資料類型相容。
  2. 在使用 UNION ALL 時,應小心避免重複資料污染結果。
  3. UNION 有更好的效能,因為它不需要在合併前去重。

以上是mysql中union和union all的用法的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!