Не существует ошибки оператора при выборе нескольких таблиц - PullRequest
0 голосов
/ 02 июля 2019

Этот выбор отлично работает с NOT IN, но с NOT EXISTS возвращает ошибку: Ошибка SQL: ORA-00920: недопустимый реляционный оператор 00920. 00000 - «недопустимый реляционный оператор»

НЕ СУЩЕСТВУЕТ ли работа по-другому?

select COMPANY.TITLE_COMPANY
from COMPANY 
outer join LOCATION on (LOCATION.NAME_LOC = COMPANY.NAME_LOC)
where  COMPANY.NUM_COMPANY  not exists (select NUM_COMPANY from COMPANY_SUC)
;

1 Ответ

1 голос
/ 02 июля 2019

Ваш синтаксис неправильный, и легко понять, почему. Помните, что предложение where not exists используется для вычитания одного набора данных из другого набора:

select
   ename
from
   emp
where NOT EXISTS
   (select
      null
   from
      dependents
   where
      emp.empno = dependents.empno
   and ...
   );

Но вы пытаетесь связать его с конкретным полем в базовом запросе, что неверно, это не совсем как NOT IN, который сравнивает данные в столбце с результатом подзапроса.

Не пытайтесь заменить его другим.

...