钟二网络头像

钟二网络

探索SQL查询技巧、Linux系统运维以及Web开发前沿技术,提供一站式的学习体验

  • 文章92531
  • 阅读1014361
首页 SQL 正文内容

两个sql检索结果相加

钟逸 SQL 2025-07-27 12:35:41 2

在数据库分析或数据管理中,经常需要将来自不同查询或表的多个 SQL 检索结果合并为一个综合结果集。将两个 SQL 检索结果相加是一种常见的操作,可用于汇总数据、生成报告或执行其他数据分析任务。

连接运算符

要相加两个 SQL 检索结果,可以使用连接运算符,例如 UNION、UNION ALL 和 INTERSECT。这些运算符将两个结果集组合成一个新的结果集,根据指定的条件。

UNION:

将两个结果集中的所有行组合成一个新的结果集,包括重复行。例如:

sql

SELECT * FROM table1

UNION

SELECT * FROM table2;

UNION ALL:

与 UNION 类似,但它不会删除重复行。因此,新结果集可能包含重复行。例如:

sql

SELECT * FROM table1

UNION ALL

SELECT * FROM table2;

INTERSECT:

仅返回两个结果集中的交集。换句话说,它只返回出现在两个结果集中的行。例如:

sql

SELECT * FROM table1

INTERSECT

SELECT * FROM table2;

示例

假设我们有两个表, table1 和 table2 ,它们都包含以下列:

id | name | age

以下查询将返回两个表的 union:

sql

SELECT * FROM table1

UNION

SELECT * FROM table2;

结果集将如下所示:

id | name | age

1 | John | 25

2 | Mary | 30

3 | Bob | 22

4 | Jane | 28

5 | John | 25

6 | Mary | 30

正如你所看到的,重复行已包含在结果集中。

要返回两个表的交集,我们可以使用以下查询:

sql

SELECT * FROM table1

INTERSECT

SELECT * FROM table2;

结果集将如下所示:

id | name | age

1 | John | 25

2 | Mary | 30

仅返回出现在两个结果集中的行。

文章目录
    搜索