sql - 编写带有 NOT EXISTS 子句的查询,但不包含 NOT EXISTS 的子查询

标签 sql sybase

我有兴趣为需要使用 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/

相关文章:

sql - 此检查是否可以避免 SQL 注入(inject)?

mysql - 使用带有散列值的 FIND_IN_SET 我的 sql 函数

mysql查询不同,性能不同

mysql - 如何只统计left join中的记录?

mysql - SQL 查询 - 多个条件下的多个计数

SQL - 如何建立同期群分析

sql - 选择所有用户定义的数据类型/结构

sql-server - 基于时间的数据的不同方法的性能

sql - 如何列出SQL Anywhere中的所有用户表及其行数?

sql - 提高 Sql Delete 的性能