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
广告