共计 1562 个字符,预计需要花费 4 分钟才能阅读完成。
这篇文章将为大家详细讲解有关 mysql 中执行计划 id 为空的示例分析,丸趣 TV 小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
简介
UNION 操作符用于合并两个或多个 SELECT 语句的结果集。例如,我有两个表,表 1 记录的是公司男员工的数据,包括年龄、姓名、职位。表 2 记录的是公司女员工的数据,包括姓名、家庭住址、手机号等字段。这时,我们想要根据一定条件,查询两个表的姓名的集合。就会用到 UNION 关键字。
UNION 可以查询多个字段,不过 SELECT 语句必须拥有相同数量的列。列也必须拥有相似的数据类型。同时,每条 SELECT 语句中的列的顺序必须相同。
语法
SELECT column_name(s) FROM table_name1
UNION
SELECT column_name(s) FROM table_name2
UNION 操作符会对结果集进行去重。如果允许重复值,可以用 UNION ALL 两者除去重功能外,没有其他区别。
实例
这里的实例,就以简介里的介绍为需求,建立两个表格,并且进行相应的操作。
首先,建立 user1,user2 两个表格,建表语句如下:
-- 建表语句
CREATE TABLE user1 (
id INT,
age INT,
NAME VARCHAR (5),
position VARCHAR (8)
CREATE TABLE user2 (
id INT,
name VARCHAR(5),
address VARCHAR(50),
phone_number VARCHAR(20)
)
其次,插入对应数据,sql 如下:
-- 数据插入语句
INSERT INTO user1
VALUES
(
1,
20,
张三 ,
技术主管
);
INSERT INTO user1
VALUES
(
2,
20,
李四 ,
产品主管
);
INSERT INTO user1
VALUES
(
3,
20,
王五 ,
运营主管
);
INSERT INTO user1
VALUES
(
4,
20,
赵六 ,
后勤主管
) INSERT INTO user2 (
id,
NAME,
address,
phone_number
)
VALUES
(
1,
珍珍 ,
北京 ,
155332211
);
INSERT INTO user2 (
id,
NAME,
address,
phone_number
VALUES
(
2,
莲莲 ,
上海 ,
155332211
);
INSERT INTO user2 (
id,
NAME,
address,
phone_number
VALUES
(
3,
爱爱 ,
深圳 ,
155332211
);
最后,运行 UNION 语句,进行查询
-- UNION 语句
SELECT NAME FROM user1
UNION
SELECT name FROM user2
代码执行后,得到结果如下:
这里的结果集中的列名为 UNION 语句的第一个 select 语句的列名(user1 为 NAME,user2 为 name)。
explain 的时候,id 为 null
在执行 UNION 的执行计划的时候,最后一个合并结果集的操作的执行 id 为 null。而且,第一个执行的 select_type 为简单查询,第二个及以后的查询为 UNION,最后合并时的 select_type 为 UNION RESULT。
执行计划代码如下:
EXPLAIN SELECT NAME FROM user1
UNION
SELECT name FROM user2
结果如下:
关于“mysql 中执行计划 id 为空的示例分析”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。