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

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

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

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

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

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

舉個(gè)通用的例子

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

注意事項(xiàng):

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

默認(rèn)情況下,UNION 會(huì)去除重復(fù)的行。如果要包含重復(fù)的行,可以使用 UNION ALL

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

舉個(gè)實(shí)際的例子

假設(shè)有兩個(gè)表 employees1employees2

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

創(chuàng)建兩個(gè)表并插入一些數(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 表重復(fù)的數(shù)據(jù)
INSERT INTO employees2 VALUES
(3, 'Bob', 'Johnson'),
(4, 'Alice', 'Doe'),
(5, 'Eva', 'Williams');

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

-- 使用 UNION 合并,去除重復(fù)行
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 自動(dòng)去除了重復(fù)的行。

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

-- 使用 UNION ALL 合并,包含重復(fù)行
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 保留了所有行,包括重復(fù)的行。

總結(jié)

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

相關(guān)文章

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

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

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

    Mysql案例刨析事務(wù)隔離級(jí)別

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

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

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

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

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

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

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

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

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

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

    這篇文章主要介紹了一種簡單的ID生成策略: Mysql表生成全局唯一ID的實(shí)現(xiàn),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    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同時(shí)使用的實(shí)現(xiàn)方法

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

    下面小編就為大家?guī)硪黄狹ySQL中union和order by同時(shí)使用的實(shí)現(xiàn)方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    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

最新評(píng)論