mysql - 在 mysql 和 mssql 问题中运行的元组“not in”子句
问题描述
我正在尝试使用在 MySQL 和 SQL Server 上运行的查询从包含一些 where 子句的表中获取数据。该查询包含来自连接数据的元组子句验证,不存在于不同表的子查询中。此查询在 MySQL 中运行正常,但在 SQL Server 中运行不正常。尝试“不存在”但没有成功...
SELECT
a.col1,
b.col2
FROM
tableA a
JOIN tableB b ON b.col_x = a.col_x
WHERE a.col5 IN ('VAL1', 'VAL2', 'VAL3')
AND (a.col2, b.col4) NOT IN (
SELECT
c.col2,
c.col4
from
tableC c
)
在 SQL Server 中运行我得到
在预期条件的上下文中指定的非布尔类型的表达式,靠近“,”。
在 SQL and 子句的“NOT IN / NOT EXISTS”部分。有任何想法吗?
解决方案
NOT EXISTS
可以改用:
SELECT
a.col1,
b.col2
FROM
tableA a
JOIN tableB b ON b.col_x = a.col_x
WHERE a.col5 IN ('VAL1', 'VAL2', 'VAL3')
AND NOT EXISTS
(
SELECT *
from tableC c
WHERE c.col2 = a.col2 AND c.col4 = b.col4
)
推荐阅读
- java - JSOUP / HTTP 错误获取 URL。状态=503
- bash - cURL 调用中的正则表达式
- android - 在将 compileSdkVersion 和 targetSdkVersion 更新为 26 时 - 使用配置的资源“attr/fontFamily”的重复值
- android - 使通知栏渐变和导航栏同时变黑
- android-studio - 如何从左侧 IntelliJ IDEA 中删除所有内容?
- javascript - 如果未在数据中声明此值,为什么它是反应性的?
- javascript - MVC:我可以从 Javascript 中清除 ViewBag 吗?
- javascript - 在 do while 循环中为 get 请求使用闭包
- hbase - 如何使用 RowCounter 计算 Hbase 表中的行数
- python - 在 Spyder 之类的同一调试会话中运行任意行?