Когда я пишу существующий запрос в синтаксисе ORACLE JOIN, как это, он работает нормально, как и ожидалось.
Select * from TableA
where not exists (Select 1 from TableB where TableB.Id = TableA.TableBForeignKeyId)
Когда я пишу его как синтаксис ANSI JOIN, он не работает.
Select * from TableA
where not exists (Select 1
from (TableA
INNER JOIN TableB
on TableA.TableBForeignKeyId = TableB.Id))
В версии ANSI JOIN TableA ведет себя не так, как верхние запросы TableA, поэтому полный запрос не возвращает строк.
Not: в TableA есть только одна строка, котораяне имеет ссылки на TableB.Этот запрос должен возвращать одну строку таблицы A.
Почему ANSI JOIN ведет себя так?