亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

mysql執行計劃id為空—UNION關鍵字

標簽:
MySQL

简介

  UNION 操作符用于合并两个或多个 SELECT 语句的结果集。例如,我有两个表,表1记录的是公司男员工的数据,包括年龄、姓名、职位。表2记录的是公司女员工的数据,包括姓名、家庭住址、手机号等字段。这时,我们想要根据一定条件,查询两个表的姓名的集合。就会用到 UNION 关键字。

  UNION 可以查询多个字段,不过 SELECT 语句必须拥有相同数量的列。列也必须拥有相似的数据类型。同时,每条 SELECT 语句中的列的顺序必须相同。

语法

1 SELECT column_name(s) FROM table_name12 UNION3 SELECT column_name(s) FROM table_name2

  UNION 操作符会对结果集进行去重。如果允许重复值,可以用 UNION ALL 两者除去重功能外,没有其他区别。

实例

  这里的实例,就以简介里的介绍为需求,建立两个表格,并且进行相应的操作。

  首先,建立user1,user2 两个表格,建表语句如下:

复制代码

 1 -- 建表语句 2 CREATE TABLE user1 ( 3     id INT, 4     age INT, 5     NAME VARCHAR (5), 6     position VARCHAR (8) 7 ); 8 CREATE TABLE user2 ( 9     id INT,10     name VARCHAR(5),11     address VARCHAR(50),12     phone_number VARCHAR(20)13 )

复制代码

CREATE TABLE

  其次,插入对应数据,sql如下:

复制代码

 1 -- 数据插入语句 2 INSERT INTO user1 3 VALUES 4     ( 5         1, 6         20, 7         '张三', 8         '技术主管' 9     );10 11 INSERT INTO user112 VALUES13     (14         2,15         20,16         '李四',17         '产品主管'18     );19 20 INSERT INTO user121 VALUES22     (23         3,24         20,25         '王五',26         '运营主管'27     );28 29 INSERT INTO user130 VALUES31     (32         4,33         20,34         '赵六',35         '后勤主管'36     ) INSERT INTO user2 (37         id,38         NAME,39         address,40         phone_number41     )42 VALUES43     (44         1,45         '珍珍',46         '北京',47         '155332211'48     );49 50 INSERT INTO user2 (51     id,52     NAME,53     address,54     phone_number55 )56 VALUES57     (58         2,59         '莲莲',60         '上海',61         '155332211'62     );63 64 INSERT INTO user2 (65     id,66     NAME,67     address,68     phone_number69 )70 VALUES71     (72         3,73         '爱爱',74         '深圳',75         '155332211'76     );

复制代码

INSERT

  最后,运行UNION语句,进行查询

1 -- UNION 语句2 SELECT NAME FROM user13 UNION4 SELECT name FROM user2

UNION

  代码执行后,得到结果如下:

  

  这里的结果集中的列名为UNION语句的第一个select语句的列名(user1 为NAME ,user2 为name)。

explain的时候,id为null

  在执行UNION的执行计划的时候,最后一个合并结果集的操作的执行id为null。而且,第一个执行的select_type为简单查询,第二个及以后的查询为UNION,最后合并时的select_type为UNION RESULT。

  执行计划代码如下:

EXPLAIN SELECT NAME FROM user1UNIONSELECT name FROM user2

EXPLAIN UNION

 

  结果如下:

 

 

文章来源:http://www.cnblogs.com/liyasong/


點擊查看更多內容
TA 點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優質文章

正在加載中
  • 推薦
  • 評論
  • 收藏
  • 共同學習,寫下你的評論
感謝您的支持,我會繼續努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學

大額優惠券免費領

立即參與 放棄機會
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

舉報

0/150
提交
取消