詳解MySQL中UNION的用法_Mysql

來源:互聯網
上載者:User

如果想選擇其他幾個表中的行或從一個單一的表作為一個單獨的結果集行的幾個集會,那麼可以使用的UNION。

UNION在MySQL4.0以上版本才能可以使用。本節說明如何使用它。

假設有兩個表,潛在和實際的客戶列表,供應商購買耗材合并所有三個表中的姓名和地址,來建立一個單一的郵件清單。UNION提供了一種方法做到這一點。假設三個表有以下內容:

mysql> SELECT * FROM prospect;+---------+-------+------------------------+| fname | lname | addr     |+---------+-------+------------------------+| Peter | Jones | 482 Rush St., Apt. 402 || Bernice | Smith | 916 Maple Dr.   |+---------+-------+------------------------+mysql> SELECT * FROM customer;+-----------+------------+---------------------+| last_name | first_name | address    |+-----------+------------+---------------------+| Peterson | Grace  | 16055 Seminole Ave. || Smith  | Bernice | 916 Maple Dr.  || Brown  | Walter  | 8602 1st St.  |+-----------+------------+---------------------+mysql> SELECT * FROM vendor;+-------------------+---------------------+| company   | street    |+-------------------+---------------------+| ReddyParts, Inc. | 38 Industrial Blvd. || Parts-to-go, Ltd. | 213B Commerce Park. |+-------------------+---------------------+

這不要緊,如果所有的三個表具有不同的列名。下面的查詢示範了如何選擇一下子從三個表的名稱和地址:

mysql> SELECT fname, lname, addr FROM prospect-> UNION-> SELECT first_name, last_name, address FROM customer-> UNION-> SELECT company, '', street FROM vendor;+-------------------+----------+------------------------+| fname    | lname | addr     |+-------------------+----------+------------------------+| Peter    | Jones | 482 Rush St., Apt. 402 || Bernice   | Smith | 916 Maple Dr.   || Grace    | Peterson | 16055 Seminole Ave. || Walter   | Brown | 8602 1st St.   || ReddyParts, Inc. |   | 38 Industrial Blvd. || Parts-to-go, Ltd. |   | 213B Commerce Park. |+-------------------+----------+------------------------+

如果想選擇所有記錄,包括重複的,請ALL的第一個UNION關鍵字:

mysql> SELECT fname, lname, addr FROM prospect-> UNION ALL-> SELECT first_name, last_name, address FROM customer-> UNION-> SELECT company, '', street FROM vendor;+-------------------+----------+------------------------+| fname    | lname | addr     |+-------------------+----------+------------------------+| Peter    | Jones | 482 Rush St., Apt. 402 || Bernice   | Smith | 916 Maple Dr.   || Grace    | Peterson | 16055 Seminole Ave. || Bernice   | Smith | 916 Maple Dr.   || Walter   | Brown | 8602 1st St.   || ReddyParts, Inc. |   | 38 Industrial Blvd. || Parts-to-go, Ltd. |   | 213B Commerce Park. |+-------------------+----------+------------------------+


聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.