问题:如何借助ORDERS和TRANSACTION DB2表上的示例来解释INNER JOIN和OUTER JOIN。
解
JOIN用于合并DB2中一个或多个表中的数据。JOIN有两种主要类型-INNER JOIN和OUTER JOIN。它们之间的基本区别是,INNER JOIN是两个或多个表的交集,而外部联接是两个或多个表的并集。基本上,INNER JOIN用于使用相等的列值组合来自多个表的数据,另一方面,在OUTER JOIN的情况下,如果列值不相等,则该行也将显示为NULL值。
例如,考虑下表。
ORDER_ID | 订购日期 | TRANSACTION_ID |
A11243 | 2020年10月8日 | Z67899 |
A22178 | 2020年11月11日 | Z67009 |
TRANSACTION_ID | 交易日期 |
Z67899 | 2020年11月11日 |
Z67674 | 2020年7月8日 |
对于INNER JOIN,我们将使用以下查询。
SELECT ORDER_ID, TRANSACTION_ID FROM ORDERS FULL OUTER JOIN TRANSACTIONS ON ORDERS.TRANSACTION_ID = TRANSACTIONS.TRANSACTION_ID
ORDER_ID | TRANSACTION_ID |
A11243 | Z67899 |
对于OUTER JOIN,我们将使用以下查询。
SELECT ORDER_ID, TRANSACTION_ID FROM ORDERS FULL OUTER JOIN TRANSACTIONS ON ORDERS.TRANSACTION_ID = TRANSACTIONS.TRANSACTION_ID
ORDER_ID | TRANSACTION_ID |
A11243 | Z67899 |
A22178 | 空值 |
空值 | Z67674 |