Я выполняю два запроса и получаю странный результат. Я хотел бы знать, почему это происходит.
Теперь запросы:
SELECT * FROM TABLE_A a, TABLE_B b, TABLE_C c
WHERE a.a = b.a (+)
AND b.c = c.c
AND a.a = 123;
Результат пуст.
SELECT COUNT(*) FROM TABLE_A a, TABLE_B b, TABLE_C c
WHERE a.a = b.a (+)
AND b.c = c.c
AND a.a = 123;
Результат равен 1.
Это действительно один и тот же запрос с другим возвращаемым значением.
Таблица A содержит строку с полем 'a' = 123.
Таблица B не содержит строк, так как a.a = b.a.
Как можно вернуть ничего или 1 для одного и того же запроса?
Обновление:
Когда я делаю так
SELECT COUNT(*) FROM TABLE_A a, TABLE_B b, TABLE_C c
WHERE a.a = b.a (+)
AND b.c = c.c (+)
AND a.a = 123;
Работает нормально.