我有两个表 TAB_A 和 TAB_B。TAB_A 是主表,TAB_B 是子/事务表。TAB_A 具有 COL_A(主键),TAB_B 具有 COL_B(主键)和 COL_A。
由于某些业务原因,列 COL_A 上的 TAB_A 和 TAB_B 之间未定义外键。
TAB_B 中有 4 条记录,其中一些值在 COL_A 中分别为 1、2、3 和 4,在 TAB_A 的 COL_A 中没有对应的匹配值。(它们是孤儿记录,错误创建)
当我发出以下 SELECT 查询时,我得到四条记录
SELECT B.COL_B,
B.COL_A
FROM TAB_A A,
TAB_B B
WHERE A.COL_A = B.COL_A
AND B.COL_A IN (1, 2, 3, 4)
但是,如果我开始在查询中引用 A.COL_A,则SELECT
不会返回任何记录。
SELECT B.COL_B,
B.COL_A,
A.COL_A
FROM TAB_A A,
TAB_B B
WHERE A.COL_A = B.COL_A
AND B.COL_A IN (1, 2, 3, 4)
有人可以解释这种奇怪的行为吗?
AIX 中的 DB2 版本 9.5