首页 >数据库 >mysql教程 >如何使用 SQL 的 UNION 运算符合并多个表中的数据?

如何使用 SQL 的 UNION 运算符合并多个表中的数据?

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-12-29 09:43:15628浏览

How Can I Combine Data from Multiple Tables Using SQL's UNION Operator?

组合表以实现合并输出

使用多个数据表时,将它们组合起来生成一个统一的输出是很常见的任务。为了实现这一点,理解数据结构和查询操作变得至关重要。

想象有两个表:KnownHours 和 UnknownHours。目标是合并这些表,忽略“月份”列,以获得与各种费用编号和类别 ID 相关的小时的全面视图。

为了实现此目的,UNION 运算符是一个强大的工具。它允许我们组合多个查询的结果,本质上是将它们附加在一起。 SQL 中 UNION 的语法如下:

SELECT ...
FROM table1
UNION
SELECT ...
FROM table2

在我们的例子中,我们需要对每个 ChargeNum/Category 组合的小时数进行分组。我们可以如下修改 UNION 查询:

SELECT ChargeNum, CategoryID, SUM(Hours)
FROM KnownHours
GROUP BY ChargeNum, CategoryID
UNION ALL
SELECT ChargeNum, 'Unknown' AS CategoryID, SUM(Hours)
FROM UnknownHours
GROUP BY ChargeNum

UNION ALL 关键字与 UNION 略有不同,因为它不会尝试删除重复的行。这确保了两个查询的所有行都包含在最终结果中。

通过利用 UNION ALL 操作,我们可以有效地组合 KnownHours 和 UnknownHours 的结果,创建一个具有所需输出的综合表:

ChargeNum    CategoryID     Hours
111111       1              90
111111       2              50
111111       Unknown        110.5
222222       1              40
222222       Unknown        25.5

了解 UNION 运算符使您能够合并来自多个来源的数据,为您的数据分析构建量身定制的全面输出提供强大的手段需要。

以上是如何使用 SQL 的 UNION 运算符合并多个表中的数据?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn