У меня есть две таблицы TAB_A и TAB_B. TAB_A - это главная таблица, а TAB_B - это дочерняя таблица / таблица транзакций. TAB_A имеет COL_A (первичный ключ), а TAB_B имеет COL_B (первичный ключ), а также COL_A.
По некоторым бизнес-причинам внешний ключ не определен между TAB_A и TAB_B в столбце COL_A.
В TAB_B есть четыре записи с некоторыми значениями, скажем, 1, 2, 3 и 4 в COL_A, которые не имеют соответствующих совпадающих значений в COL_A TAB_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)
Может кто-нибудь объяснить это странное поведение?
DB2 Версии 9.5 в AIX