欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

MySQL之使用UNION和UNION ALL合并兩個或多個SELECT語句的結(jié)果集

 更新時間:2024年04月02日 15:11:18   作者:Hello 阿月  
這篇文章主要介紹了MySQL之使用UNION和UNION ALL合并兩個或多個SELECT語句的結(jié)果集,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

使用UNION和UNION ALL合并兩個或多個SELECT語句的結(jié)果集

在MySQL中, UNIONUNION ALL 是用于合并兩個或多個 SELECT 語句的結(jié)果集的操作符。

UNION 會去除結(jié)果集中的重復行,返回唯一的行,而 UNION ALL 會返回所有的行,包括重復行。

舉個通用的例子

SELECT column1, column2, ...
FROM table1
WHERE condition
UNION
SELECT column1, column2, ...
FROM table2
WHERE condition;
  • SELECT column1, column2, ...: 指定要查詢的列。
  • FROM table: 指定要查詢的表。
  • WHERE condition: 指定篩選條件(可選)。

注意事項:

UNION 連接的兩個 SELECT 語句必須包含相同數(shù)量和類型的列,列的順序也必須相同。

默認情況下,UNION 會去除重復的行。如果要包含重復的行,可以使用 UNION ALL。

使用 UNIONUNION ALL 時,結(jié)果集的列名是由第一個 SELECT 語句中的列名決定的,因此要確保兩個 SELECT 語句中的列名和類型相匹配。

舉個實際的例子

假設有兩個表 employees1employees2

包含相同的列結(jié)構和部分重復數(shù)據(jù),然后使用 UNIONUNION ALL 進行查詢和合并。

創(chuàng)建兩個表并插入一些數(shù)據(jù)

-- 創(chuàng)建 employees1 表
CREATE TABLE employees1 (
    employee_id INT,
    first_name VARCHAR(50),
    last_name VARCHAR(50)
);

-- 插入數(shù)據(jù)到 employees1 表
INSERT INTO employees1 VALUES
(1, 'John', 'Doe'),
(2, 'Jane', 'Smith'),
(3, 'Bob', 'Johnson'),
(4, 'Alice', 'Doe');

-- 創(chuàng)建 employees2 表
CREATE TABLE employees2 (
    employee_id INT,
    first_name VARCHAR(50),
    last_name VARCHAR(50)
);

-- 插入數(shù)據(jù)到 employees2 表,包含一些與 employees1 表重復的數(shù)據(jù)
INSERT INTO employees2 VALUES
(3, 'Bob', 'Johnson'),
(4, 'Alice', 'Doe'),
(5, 'Eva', 'Williams');

使用 UNION 合并這兩個表的數(shù)據(jù):

-- 使用 UNION 合并,去除重復行
SELECT employee_id, first_name, last_name
FROM employees1
UNION
SELECT employee_id, first_name, last_name
FROM employees2;

結(jié)果如下:

+-------------+------------+-----------+
| employee_id | first_name | last_name |
+-------------+------------+-----------+
| 1           | John       | Doe       |
| 2           | Jane       | Smith     |
| 3           | Bob        | Johnson   |
| 4           | Alice      | Doe       |
| 5           | Eva        | Williams  |
+-------------+------------+-----------+

可以看到,UNION 自動去除了重復的行。

使用 UNION ALL 合并這兩個表的數(shù)據(jù):

-- 使用 UNION ALL 合并,包含重復行
SELECT employee_id, first_name, last_name
FROM employees1
UNION ALL
SELECT employee_id, first_name, last_name
FROM employees2;

結(jié)果如下:

+-------------+------------+-----------+
| employee_id | first_name | last_name |
+-------------+------------+-----------+
| 1           | John       | Doe       |
| 2           | Jane       | Smith     |
| 3           | Bob        | Johnson   |
| 4           | Alice      | Doe       |
| 3           | Bob        | Johnson   |
| 4           | Alice      | Doe       |
| 5           | Eva        | Williams  |
+-------------+------------+-----------+

可以看到

  • UNION ALL 保留了所有行,包括重復的行。

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • MySQL隨機獲取一條記錄的方法小結(jié)

    MySQL隨機獲取一條記錄的方法小結(jié)

    隨機獲取一條記錄是在數(shù)據(jù)庫查詢中常見的需求,在?MySQL?中,有多種方法可以實現(xiàn)隨機獲取一條記錄,每種方法都有其適用的情況和性能特點,在本文中,我們將探討幾種常用的方法,并推薦適合不同情況下的最佳方法,需要的朋友可以參考下
    2024-04-04
  • Mysql案例刨析事務隔離級別

    Mysql案例刨析事務隔離級別

    隔離性其實比想象要復雜。在SQL中定義了四種隔離的級別,每一種隔離級別都規(guī)定了一個事務中的修改,哪些是在事務內(nèi)和事務間是可見的,哪些是不可見的。較低級別的隔離通常來說能承受更高的并發(fā),系統(tǒng)的開銷也會更小
    2021-09-09
  • mysql 8.0.16 winx64及Linux修改root用戶密碼 的方法

    mysql 8.0.16 winx64及Linux修改root用戶密碼 的方法

    這篇文章主要介紹了mysql 8.0.16 winx64及Linux修改root用戶密碼 的方法,本文給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-07-07
  • mysql 數(shù)據(jù)類型TIMESTAMP

    mysql 數(shù)據(jù)類型TIMESTAMP

    timestamp數(shù)據(jù)類型是一個比較特殊的數(shù)據(jù)類型,他可以自動在你不使用程序更新情況下只要你更新了記錄timestamp會自動更新時間
    2014-07-07
  • MySql實現(xiàn)跨表查詢的方法詳解

    MySql實現(xiàn)跨表查詢的方法詳解

    本篇文章是對MySql實現(xiàn)跨表查詢的方法進行了詳細的分析介紹,需要的朋友參考下
    2013-06-06
  • MySQL將版本由5.7.37更新到5.7.39的實現(xiàn)方式

    MySQL將版本由5.7.37更新到5.7.39的實現(xiàn)方式

    這篇文章主要介紹了MySQL將版本由5.7.37更新到5.7.39的實現(xiàn)方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-12-12
  • 一種簡單的ID生成策略: Mysql表生成全局唯一ID的實現(xiàn)

    一種簡單的ID生成策略: Mysql表生成全局唯一ID的實現(xiàn)

    這篇文章主要介紹了一種簡單的ID生成策略: Mysql表生成全局唯一ID的實現(xiàn),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-11-11
  • mysql Event Scheduler: Failed to open table mysql.event

    mysql Event Scheduler: Failed to open table mysql.event

    這篇文章主要介紹了mysql Event Scheduler: Failed to open table mysql.event,需要的朋友可以參考下
    2016-04-04
  • MySQL中union和order by同時使用的實現(xiàn)方法

    MySQL中union和order by同時使用的實現(xiàn)方法

    下面小編就為大家?guī)硪黄狹ySQL中union和order by同時使用的實現(xiàn)方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-12-12
  • 監(jiān)控MySQL主從狀態(tài)的shell腳本

    監(jiān)控MySQL主從狀態(tài)的shell腳本

    這篇文章主要分享了監(jiān)控MySQL主從狀態(tài)的shell腳本,幫助大家更好的監(jiān)控mysql數(shù)據(jù)庫,保持穩(wěn)定性,感興趣的朋友可以了解下
    2020-12-12

最新評論