MySQL UNION 操作
UNION 操作符用于组合来自不同表或同一表的两个或更多结果集,返回一个包含唯一行的组合结果。
语法:
<code>SELECT 列名1, 列名2, ... FROM 表1 UNION SELECT 列名1, 列名2, ... FROM 表2 [UNION ALL SELECT 列名1, 列名2, ... FROM 表3];</code>
如何使用 UNION 操作符:
-
确保列数和数据类型匹配:参与 UNION 操作的表的列数和数据类型必须相同。
使用 UNION ALL 移除重复项:如果需要保留重复行,请使用 UNION ALL。否则,请使用 UNION。
示例:
假设我们有 "customers" 和 "orders" 两个表:
<code>+---------+-------+ | customers | name | +---------+-------+ | 1 | John | | 2 | Mary | | 3 | Bob | +---------+-------+ +--------+---------+---------+ | orders | customer_id | product | +--------+---------+---------+ | 1 | 1 | Shoes | | 2 | 2 | Shirt | | 3 | 1 | Hat | +--------+---------+---------+</code>
以下查询使用 UNION 操作符返回客户姓名以及他们购买的产品:
<code class="sql">SELECT name, product FROM customers UNION SELECT name, product FROM orders;</code>
结果:
<code>+-------+---------+ | name | product | +-------+---------+ | John | Shoes | | Mary | Shirt | | Bob | Hat | +-------+---------+</code>
