---
title: "UNION 子句 - OceanBase 数据库 V4.2.0 | OceanBase 文档中心"
description: "UNION 子句 描述 该语句用于对多个 SELECT 查询的结果进行 UNION 、 EXCEPT 或 INTERSECT 操作。 语法 select_clause_set: select_clause_set_left [ UNION | UNION ALL | MINUS | EXCEPT | INTERSEC…"
image: https://mdn.alipayobjects.com/huamei_22khvb/afts/img/A*OSPzQ6GUQF4AAAAAQHAAAAgAeiGDAQ/original
---
切换语言

- 中文站 - 简体中文
- International - English
- 日本站 - 日本語

文档反馈![](https://mdn.alipayobjects.com/huamei_22khvb/afts/img/A*P8CuR4UJ_FkAAAAAAAAAAAAADiGDAQ/original) OceanBase 数据库分布式版 - V 4.2.0

# UNION 子句

更新时间：2023-08-01 14:14:04

[编辑](https://github.com/oceanbase/oceanbase-doc/edit/V4.2.0/zh-CN/700.reference/500.sql-reference/100.sql-syntax/200.common-tenant-of-mysql-mode/600.sql-statement-of-mysql-mode/8100.select-of-mysql-mode/400.union-clause-of-mysql-mode.md)  

## 描述

该语句用于对多个 `SELECT` 查询的结果进行 `UNION`、`EXCEPT`或 `INTERSECT` 操作。

## 语法

```sql
select_clause_set:
    select_clause_set_left [ UNION | UNION ALL | MINUS | EXCEPT | INTERSECT] select_clause_set_right
  [sort_list_columns] [limit_clause]

```

## 参数解释

| 参数 | 描述 |
| --- | --- |
| select_clause_set_left | `SELECT` 语句，返回用于集合计算的左集合。 |
| select_clause_set_right | `SELECT` 语句，返回用于集合计算的右集合。 |
| sort_list_columns | 指定集合计算后的分组方式。 |
| limit_clause | 指定集合计算后返回的行数。 |
| UNION ALL | 合并两个查询的结果。 |
| UNION | 合并两个查询的结果，并去重。 |
| MINUS \| EXCEPT | 从左查询结果集中去重出现在右查询中的结果，并去重。   **说明**`MINUS` 是 `EXCEPT` 的同义词。 |
| INTERSECT | 保留左查询结果集中出现在右查询中的结果，并去重。 |

## 示例

以如下两表的数据为例：

```sql
obclient> CREATE TABLE t1 (c1 INT, c2 INT);
obclient> CREATE TABLE t2 (c1 INT, c2 INT);
obclient> INSERT INTO t1 VALUES (1, -1), (2, -2);
obclient> INSERT INTO t2 VALUES (1, 1), (2, -2), (3, 3);

```

- 查询数据集 `t1`∪`t2` 的所有的记录。

  ```sql
  obclient> SELECT c1, c2 FROM t1 UNION ALL SELECT c1, c2 FROM t2;
  +------+------+
  | c1   | c2   |
  +------+------+
  |    1 |   -1 |
  |    2 |   -2 |
  |    1 |    1 |
  |    2 |   -2 |
  |    3 |    3 |
  +------+------+
  5 rows in set

  ```
 - 查询数据集 `t1`∪`t2` 的去重后的所有记录。

  ```sql
  obclient> SELECT c1, c2 FROM t1 UNION SELECT c1, c2 FROM t2;
  +------+------+
  | c1   | c2   |
  +------+------+
  |    1 |   -1 |
  |    2 |   -2 |
  |    1 |    1 |
  |    3 |    3 |
  +------+------+
  4 rows in set  

  ```
 - 查询 `t1` 与 `t2` 的交集。

  ```sql
  obclient> SELECT c1, c2 FROM t1 INTERSECT SELECT c1, c2 FROM t2;
  +------+------+
  | c1   | c2   |
  +------+------+
  |    2 |   -2 |
  +------+------+
  1 row in set

  ```
 - 查询 `t1` 与 `t2` 的差集。

  ```sql
  obclient> SELECT c1, c2 FROM t1 EXCEPT SELECT c1, c2 FROM t2;
  +------+------+
  | c1   | c2   |
  +------+------+
  |    1 |   -1 |
  +------+------+
  1 row in set

  ```
 - 查询 `t1` 和 `t2` 并集中按 `c2` 降序排序的前两行。

  ```sql
  obclient> SELECT c1, c2 FROM t1 UNION SELECT c1, c2 FROM t2 ORDER BY c2 DESC LIMIT 2;
  +------+------+
  | c1   | c2   |
  +------+------+
  |    3 |    3 |
  |    1 |    1 |
  +------+------+
  2 rows in set

  ```

 上一篇 下一篇 ![有帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*y6ocSqN8cqsAAAAAAAAAAAAAARQnAQ)![无帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*BG9IQJyLHF8AAAAAAAAAAAAAARQnAQ)![反馈](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*eTWdQKCRKHwAAAAAAAAAAAAAARQnAQ)[AI](https://www.oceanbase.com/obi) 咨询热线
