我对编写应用程序查询非常感兴趣,在该应用程序中我需要使用NOT EXISTS子句来检查是否存在行。
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 )
希望是清楚的。
您可以使用LEFT JOIN而不是EXISTS编写一个反联接:
SELECT t1.* FROM Table1 t1 LEFT JOIN Table2 t2 ON t2.Id = t1.Id WHERE t2.Id IS NULL
但是使用EXISTS运算符,您 必须 有一个子查询。