MySQL 如何在MySQL中执行多个选择查询?
在MySQL中,你也许会需要同时执行多个选择查询。不用担心,这篇文章将向你解释如何在MySQL中进行多个选择查询。我们将会用到UNION关键字,来将多个SELECT语句的结果行集合并成同一个结果集。
阅读更多:MySQL 教程
UNION关键字
UNION关键字用于将两个或以上的SELECT语句的结果列合并到一个结果集中。需要注意的是,每个SELECT语句中列的数量应该相同,并且每个SELECT语句中列的类型应该兼容。当你使用UNION关键字时,你需要用到以下语法:
SELECT 列名称 FROM 表名称1 UNION SELECT 列名称 FROM 表名称2;
示例
在下面的例子中,我们将从两个不同的表中选择数据并合并结果。首先,让我们创建两个表。
创建表
CREATE TABLE first_table (
id INT PRIMARY KEY,
name VARCHAR(30),
age INT
);
CREATE TABLE second_table (
id INT PRIMARY KEY,
name VARCHAR(30),
salary INT
);
INSERT INTO first_table (id, name, age) VALUES (1, 'Tom', 25), (2, 'Jerry', 32), (3, 'Kate', 28);
INSERT INTO second_table (id, name, salary) VALUES (1, 'Tom', 5000), (2, 'Jerry', 8000), (3, 'Emma', 7000);
这将会创建名为first_table
和second_table
的两个表,并将数据插入这些表中。
进行多个选择查询
下面,我们将会从两张表中选择数据,并把结果合并成一个结果集。我们需要用到UNION关键字来将两个查询的结果合并起来。
SELECT name, age FROM first_table UNION SELECT name, null FROM second_table;
这个查询首先从first_table
表中选择name
和age
列,并将结果存储到一个结果集中。接下来,查询从second_table
表中选择name
列和null值,并将结果也合并到同一个结果集中。最后,我们得到的结果集包含了从两个表中选择的列,并且结果集中没有重复。
UNION ALL
UNION ALL关键字用于将多个选择查询的结果合并为一个结果集,与UNION不同的是,它不会消除结果集中的重复数据。与UNION相似,每个SELECT语句中列的数量和类型都应该相同。
SELECT 列名称 FROM 表名称1 UNION ALL SELECT 列名称 FROM 表名称2;
示例
在这个例子中,我们将使用UNION ALL,将两个表的数据合并到一个结果集中。
SELECT id, name, age FROM first_table UNION ALL SELECT id, name, salary FROM second_table;
这个查询将返回一个结果集,包含从两个表中选择的所有列,并且保留了重复的行。
结论
在MySQL中执行多个选择查询非常简单。你只需要使用UNION或UNION ALL关键字,即可将多个SELECT语句的结果集合并成一个结果集。记得,每个SELECT语句中列的数量和类型都应该相同,否则你可能会得到错误的结果。