1
使用简单的表/字段名称为简单起见:SQL Server查询,不能使用子查询
SELECT A.a
FROM A LEFT JOIN B ON A.a = B.a
WHERE B.a IS NULL
AND B.a NOT IN (
SELECT B.a FROM B WHERE B.b = 'literal'
)
它应该从表A
返回行,其中a
字段不表B
中存在B.b
等于特定值(将作为参数传递)的那些行。
A.a
-------
1
2
3
B.a B.b
----- -----
1 'literal'
1 'abc'
2 'def'
考虑到数据,查询应该返回:
A.a
------
2
3
我真的不知道我可以从你的答案会发生什么结果,我尝试了,我得到0行返回。我添加了一个例子,希望它有助于澄清所需的结果。 – Ozzyberto 2013-03-08 01:13:34
哦,我没有注意到这个链接,我查了一下,看起来是对的。我的执行过程中一定有什么问题。我会做更多的测试。 – Ozzyberto 2013-03-08 01:14:32
@Ozzyberto请考虑接受答案,如果它帮助你。 – 2013-03-08 06:40:21