UNION 操作符用於將多個 SELECT 查詢的結果集合併為單一結果集,要求各查詢欄位數、順序、類型兼容。MySQL 4.0+ 開始支援。
三張表:潛在客戶 prospect、正式客戶 customer、供應商 vendor,需彙總所有人員/公司名稱與地址生成郵寄清單。表結構各異:
prospect(fname, lname, addr) customer(first_name, last_name, address) vendor(company, street)
SELECT fname, lname, addr FROM prospect UNION SELECT first_name, last_name, address FROM customer UNION SELECT company, '', street FROM vendor;
結果(重複的 Bernice Smith 只保留一條):
+-------------------+----------+------------------------+ | 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. | +-------------------+----------+------------------------+
SELECT fname, lname, addr FROM prospect UNION ALL SELECT first_name, last_name, address FROM customer UNION ALL SELECT company, '', street FROM vendor;
結果包含重複的 Bernice Smith:
+-------------------+----------+------------------------+ | 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. | +-------------------+----------+------------------------+
SELECT 可獨立加 WHERE、LIMIT、ORDER BY(需加括號)。ORDER BY。