我有兴趣为需要使用 NOT EXISTS
的应用程序编写查询。子句来检查一行是否存在。
我正在使用 Sybase,但我想知道一般 SQL 中是否有一个示例,您可以在其中编写具有 NOT EXISTS
的查询NOT EXISTS
没有嵌套子查询的子句.
所以而不是
SELECT * FROM TABLE
WHERE NOT EXISTS (SOME SUBQUERY)
有没有办法在没有子查询的情况下编写这个?
编辑 :不幸的是,我无法向您显示查询,因为它是 secret 信息,但我可以解释的是我正在尝试这样做:
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 运算符,you must have a subquery .
关于sql - 编写带有 NOT EXISTS 子句的查询,但不包含 NOT EXISTS 的子查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37255021/