admin

使用NOT EXISTS子句编写查询,而没有用于NOT EXISTS的子查询

sql

我对编写应用程序查询非常感兴趣,在该应用程序中我需要使用NOT EXISTS子句来检查是否存在行。

我正在使用Sybase,但我想知道在SQL中是否总有一个示例,您可以编写一个带有NOT EXISTS子句的查询,而该子句没有用于的嵌套子查询NOT EXISTS

所以代替

SELECT * FROM TABLE 
WHERE NOT EXISTS (SOME SUBQUERY)

有没有写此方法而无需子查询的方法?

编辑 :不幸的是,我无法向您显示该查询,因为它是机密信息,但我可以解释的是我正在尝试执行以下操作:

SELECT t1.a 
FROM (select t2.a from table t2 ,table t3 where t2.b = t3.b ) as t1
where not exists (select t1.a from table t1 )

希望是清楚的。


阅读 181

收藏
2021-07-01

共1个答案

admin

您可以使用LEFT JOIN而不是EXISTS编写一个反联接:

SELECT t1.*
FROM Table1 t1
LEFT JOIN Table2 t2
    ON  t2.Id = t1.Id
WHERE t2.Id IS NULL

但是使用EXISTS运算符,必须
有一个子查询

2021-07-01