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

來源:互聯網
上載者:User
簡介

  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

 

  結果如下:

 

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.