SQL(十六)-UNION

本文详细介绍了如何使用SQL中的UNION和UNION ALL运算符来合并多个表中的数据。UNION会移除结果集中的重复行,而UNION ALL则保留所有行,包括重复的行。文中通过具体例子展示了这两种运算符的应用场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1:(SET操作

有时,您可能需要将多个表中的数据合并为一个综合数据集。 这可能是针对同一数据库中具有相似数据的表,或者可能需要跨数据库或跨服务器组合类似的数据。
要完成此操作,请使用UNION和UNION ALL运算符。
UNION将多个数据集合并到一个数据集中,并删除任何现有的重复数据集。
UNION ALL将多个数据集合并到一个数据集中,但不会删除重复行。
UNION ALL比UNION快,因为它不对数据集执行重复的删除操作。


2:(UNION

UNION运算符用于组合两个或多个SELECT语句的结果集。
UNION中的所有SELECT语句必须具有相同的列数。 列也必须具有相同的数据类型。 此外,每个SELECT语句中的列必须按相同的顺序。
UNION的语法如下:

SELECT column_name(s) FROM table1
UNION
SELECT column_name(s) FROM table2;

这里是两个表中的第一个:


这里是第二个:


SELECT ID, FirstName, LastName, City FROM First
UNION
SELECT ID, FirstName, LastName, City FROM Second;
结果表将如下所示:

如您所见,重复项已删除。

TIP:

如果您的列在所有查询中不完全匹配,您可以使用NULL(或任何其他)值,如:

SELECT FirstName, LastName, Company FROM businessContacts
UNION
SELECT FirstName, LastName, NULL FROM otherContacts;


3:(UNION ALL

UNION ALL从每个表中选择所有行,并将它们组合到单个表中。
以下SQL语句使用UNION ALL从第一个表和第二个表中选择数据:
SELECT ID, FirstName, LastName, City FROM First
UNION ALL
SELECT ID, FirstName, LastName, City FROM Second;
结果表:


如您所见,结果集也包括重复行。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值