Может ли представление строк в oracle sql содержать в запросе предложение "not in"? - PullRequest
0 голосов
/ 11 июля 2019

Например

select *
from t1 
inner join (select * from t2 where t2.id not in (select ID from t2 where city="Paris"))

Я попытался найти в Google. Есть много примеров, но ни один из них не используется в. Кроме того, нет никаких ограничений, указанных для представления в строке.

1 Ответ

0 голосов
/ 11 июля 2019

Oracle вызывает подзапросы в пункте FROM «встроенные представления».

Это общие SELECT запросы. Они могут содержать NOT IN с подзапросами. Проблема с вашим запросом - отсутствие предложения ON и использование двойных кавычек для строковой константы:

select *
from t1 inner join
     (select *
      from t2
      where t2.id not in (select ID from t2 where city = 'Paris')
---------------------------------------------------------^ single quotes
     ) t2
     on t1.? = t2.?
-----^ on clause

Примечание. Я бы не рекомендовал вам использовать NOT IN с подзапросами, поскольку они не работают должным образом, если любые возвращаемые значения NULL. (Если это так, строки не возвращаются.)

Я советую использовать NOT EXISTS.

...