MySQL之使用UNION和UNION ALL合并两个或多个SELECT语句的结果集 |
使用UNION和UNION ALL合并两个或多个SELECT语句的结果集在MySQL中,
举个通用的例子SELECT column1, column2, ... FROM table1 WHERE condition UNION SELECT column1, column2, ... FROM table2 WHERE condition;
注意事项:
默认情况下, 使用 举个实际的例子假设有两个表 包含相同的列结构和部分重复数据,然后使用 创建两个表并插入一些数据 -- 创建 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 | +-------------+------------+-----------+ 可以看到
总结以上为个人经验,希望能给大家一个参考,也希望大家多多支持 。 |