|
使用UNION和UNION ALL合并两个或多个SELECT语句的结果集
在MySQL中,和是用于合并两个或多个 SELECT 语句的结果集的操作符。会去除结果集中的重复行,返回唯一的行,而会返回所有的行,包括重复行。
举个通用的例子
- SELECT column1, column2, ...
- FROM table1
- WHERE condition
- UNION
- SELECT column1, column2, ...
- FROM table2
- WHERE condition;
复制代码
- SELECT column1, column2, ...
复制代码 : 指定要查询的列。
- : 指定要查询的表。
- : 指定筛选条件(可选)。
注意事项:连接的两个 SELECT 语句必须包含相同数量和类型的列,列的顺序也必须相同。
默认情况下,会去除重复的行。如果要包含重复的行,可以使用。
使用或时,结果集的列名是由第一个语句中的列名决定的,因此要确保两个语句中的列名和类型相匹配。
举个实际的例子
假设有两个表和包含相同的列结构和部分重复数据,然后使用和进行查询和合并。
创建两个表并插入一些数据- -- 创建 employees1 表
- CREATE TABLE employees1 (
- employee_id INT,
- first_name VARCHAR(50),
- last_name VARCHAR(50)
- );
- -- 插入数据到 employees1 表
- INSERT INTO employees1 VALUES
- (1, 'John', 'Doe'),
- (2, 'Jane', 'Smith'),
- (3, 'Bob', 'Johnson'),
- (4, 'Alice', 'Doe');
- -- 创建 employees2 表
- CREATE TABLE employees2 (
- employee_id INT,
- first_name VARCHAR(50),
- last_name VARCHAR(50)
- );
- -- 插入数据到 employees2 表,包含一些与 employees1 表重复的数据
- INSERT INTO employees2 VALUES
- (3, 'Bob', 'Johnson'),
- (4, 'Alice', 'Doe'),
- (5, 'Eva', 'Williams');
复制代码 使用 合并这两个表的数据:- -- 使用 UNION 合并,去除重复行
- SELECT employee_id, first_name, last_name
- FROM employees1
- UNION
- SELECT employee_id, first_name, last_name
- FROM employees2;
复制代码 结果如下:- +-------------+------------+-----------+
- | employee_id | first_name | last_name |
- +-------------+------------+-----------+
- | 1 | John | Doe |
- | 2 | Jane | Smith |
- | 3 | Bob | Johnson |
- | 4 | Alice | Doe |
- | 5 | Eva | Williams |
- +-------------+------------+-----------+
复制代码 可以看到,自动去除了重复的行。
使用 合并这两个表的数据:- -- 使用 UNION ALL 合并,包含重复行
- SELECT employee_id, first_name, last_name
- FROM employees1
- UNION ALL
- SELECT employee_id, first_name, last_name
- FROM employees2;
复制代码 结果如下:- +-------------+------------+-----------+
- | 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 |
- +-------------+------------+-----------+
复制代码 可以看到
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
来源:https://www.jb51.net/database/319144u9u.htm
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作! |
|