当前位置: 首页 > 面试题库 >

SQL中的NOT IN条件

姚臻
2023-03-14
问题内容

谁能告诉我两列中SQL中NOT IN条件的确切语法。

这是我用VBA编写的查询。

strNewSql = "SELECT distinct(tblRevRelLog_Detail.PartNumber), tblRevRelLog_Detail.ChangeLevel, tblRevRelLog_Detail.ID FROM tblRevRelLog_Detail LEFT JOIN tblEventLog ON tblRevRelLog_Detail.PartNumber = tblEventLog.PartNumber"

strNewSql = strNewSql & " WHERE (tblEventLog.PartNumber) Not In(SELECT tblEventLog.PartNumber FROM tblEventLog WHERE tblEventLog.EventTypeSelected = 'pn REMOVED From Wrapper') AND tblEventLog.TrackingNumber = """ & tempTrackingNumber & """ AND tblEventLog.TrackingNumber =  tblRevRelLog_Detail.RevRelTrackingNumber;"

我想更改此子查询,它应应用于两列的组合,如下所示:

strNewSql = "SELECT tblRevRelLog_Detail.PartNumber, tblRevRelLog_Detail.ChangeLevel, tblRevRelLog_Detail.ID FROM tblRevRelLog_Detail LEFT JOIN tblEventLog ON tblRevRelLog_Detail.PartNumber = tblEventLog.PartNumber"

strNewSql = strNewSql & " WHERE (((tblEventLog.PartNumber, tblEventLog.PartNumberChgLvl) Not In(SELECT tblEventLog.PartNumber,tblEventLog.PartNumberChgLvl FROM tblEventLog WHERE tblEventLog.EventTypeSelected = 'pn REMOVED From Wrapper') AND tblEventLog.TrackingNumber = """ & tempTrackingNumber & """ AND tblEventLog.TrackingNumber =  tblRevRelLog_Detail.RevRelTrackingNumber);"

但这不起作用.....


问题答案:

您不能使用IN多于一列,但通常可以使用EXISTS以下方法实现相同的效果:

SELECT *
FROM tbl1
WHERE NOT EXISTS
(
    SELECT *
    FROM tbl2
    WHERE tbl2.col1 = tbl1.col1
        AND tbl2.col2 = tbl1.col2
)


 类似资料:
  • 问题内容: 是否可以做这样的事情: 我尤其要在除法结果值上放置一个where条件 问题答案: 这可以通过HAVING子句完成: 注意:添加了放置语句的位置 查询优化器也不应该多次计算平均值,因此在这里不必担心。 正如@jagra的答案中提到的那样,您应该可以使用而不是

  • 问题内容: 我正在创建一个需要条件子句的SQL查询。 应该是这样的: 上面的查询不起作用。这是不正确的语法,还是我不知道的另一种方式来做到这一点? 我不想使用动态SQL,是否还有其他方法,还是必须使用类似的解决方法,例如对不同的子句使用和使用相同的查询? 问题答案: 试试这个 您可以在此处阅读有关条件WHERE的更多信息。

  • 什么是 Nutz.Dao 中的复杂SQL条件 对于 Nutz.Dao 来说,它本质上就是将你的 Java 对象转化成 SQL,然后交给 JDBC 去执行。 而 SQL 中,当执行数据删除和查询操作时,最常用的就是 WHERE 关键字。 WHERE 关键字后面的就是所谓的复杂查询条件 Nutz.Dao 将如何如何使用这个条件 Dao 接口的 clear 方法和 query 方法的第二个参数,就是为了

  • 问题内容: 我有以下方式的数据: 我想要正数量的总和(数量> 0)和负数量的总和(数量<0)。 如何根据条件获取这些列的总和? 问题答案: 您可以使用: LiveDemo

  • 问题内容: 检查问题此SELECT查询需要180秒才能完成(检查问题本身的注释)。 IN只能与一个值进行比较,但是时间差仍然很大。 为什么会这样呢? 问题答案: 简介:这是MySQL中的一个已知问题,已在MySQL 5.6.x中修复。问题是由于使用IN的子查询被错误地标识为从属子查询而不是独立子查询时缺少优化。 在原始查询上运行EXPLAIN时,它将返回以下内容: 当您更改为以下内容时: 每个相关

  • 问题内容: 问题:我有一个SQL函数,该函数返回文件列表 现在,我应该使用联合将其他列表加入该列表,但前提是用户是admin。 那可能吗?就像是: 问题答案: