DB2 中 JOIN 和 UNION 的区别是什么?请举例说明。


JOIN 和 UNION 都用于组合一个或多个表中的数据。在 JOIN 的情况下,附加数据出现在列中,而在 UNION 的情况下,附加数据出现在行中。

例如:

JOIN

假设我们有两个 DB2 表,ORDERS 和 TRANSACTIONS。我们需要提取每个 ORDER_ID 的 TRANSACTION_ID,那么我们将使用 INNER JOIN,如下所示:

示例

SELECT ORDER_ID, TRANSACTION_ID
   FROM ORDERS INNER JOIN TRANSACTIONS ON
   ORDERS.TRANSACTION_ID = TRANSACTIONS.TRANSACTION_ID

此查询将生成 2 列。一列来自 ORDERS 表,即 ORDER_ID,另一列来自 TRANSACTIONS 表,即 TRANSACTION_ID。

UNIONS

我们有两个表 ORDERS 和 ORDER_HIST。ORDERS 表包含所有当前订单,而 ORDER_HIST 表包含所有已归档的订单。如果我们想列出所有总价值超过 10000 的订单,则必须使用以下查询。

示例

SELECT ORDER_ID, ORDER_TOTAL FROM ORDERS WHERE ORDER_TOTAL > 10000
UNION
SELECT ORDER_ID, ORDER_TOTAL FROM ORDERS_HIST WHERE ORDER_TOTAL > 10000

更新于: 2020年11月30日

820 次查看

开启你的职业生涯

完成课程获得认证

开始学习
广告