我有兩個表TAB_A和TAB_B。 TAB_A是主表,TAB_B是子/事務表。 TAB_A具有COL_A(主鍵),而TAB_B具有COL_B(主鍵)以及COL_A。DB2查詢輸出 - 不同行爲
由於某些商業原因,COL_A列上的TAB_A和TAB_B之間未定義外鍵。
在TAB_B中有四條記錄,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)
但是,如果我開始在SELECT
查詢指A.COL_A,沒有記錄返回。
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)
有人能解釋這種奇怪的行爲嗎?
DB2版本9.5在AIX
請確認第一個查詢與描述完全相同,並確實返回4條記錄。它不應該返回任何東西,如果COL_A的值1,2,3,4不存在於TAB_B中。 – 2008-10-31 08:40:01
顯然在第二個查詢中存在拼寫錯誤,也許您在說A.COL_A = B.COL_C或其他一些錯字 – Hogan 2013-11-18 16:01:59