选择多个表时不存在运算符错误

时间:2019-07-02 16:36:24

标签: sql oracle not-exists

此选择与NOT IN一起使用时效果很好,但是与NOT EXISTS一起使用时,它返回错误:     SQL错误:ORA-00920:无效的关系运算符     00920. 00000-“无效的关系运算符”

NOT EXISTS是否可以通过其他方式工作?

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 个答案:

答案 0 :(得分:1)

您的语法是错误的,很容易找出原因。注意where not exists子句用于从另一组数据中减去一组数据:

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

但是您试图将其与基础查询中的特定字段相关联,这是错误的,它与将列中的数据与子查询结果进行比较的NOT IN并不完全相同。

不要试图将其替换。