mysql 的 union 操作符用于組合不同表或相同表中多個結果集,返回一個包含唯一行的組合結果。它需要確保列數和數據類型相同,使用 union all 時重復行將被保留,否則將被移除。
MySQL UNION 操作
UNION 操作符用于組合來自不同表或同一表的兩個或更多結果集,返回一個包含唯一行的組合結果。
語法:
SELECT 列名1, 列名2, ... FROM 表1 UNION SELECT 列名1, 列名2, ... FROM 表2 [UNION ALL SELECT 列名1, 列名2, ... FROM 表3];
登錄后復制
如何使用 UNION 操作符:
確保列數和數據類型匹配:參與 UNION 操作的表的列數和數據類型必須相同。
使用 UNION ALL 移除重復項:如果需要保留重復行,請使用 UNION ALL。否則,請使用 UNION。
示例:
假設我們有 “customers” 和 “orders” 兩個表:
+---------+-------+ | customers | name | +---------+-------+ | 1 | John | | 2 | Mary | | 3 | Bob | +---------+-------+ +--------+---------+---------+ | orders | customer_id | product | +--------+---------+---------+ | 1 | 1 | Shoes | | 2 | 2 | Shirt | | 3 | 1 | Hat | +--------+---------+---------+
登錄后復制
以下查詢使用 UNION 操作符返回客戶姓名以及他們購買的產品:
SELECT name, product FROM customers UNION SELECT name, product FROM orders;
登錄后復制
結果:
+-------+---------+ | name | product | +-------+---------+ | John | Shoes | | Mary | Shirt | | Bob | Hat | +-------+---------+
登錄后復制