Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 我如何获得不在一组中的所有结果?_Sql Server_Tsql - Fatal编程技术网

Sql server 我如何获得不在一组中的所有结果?

Sql server 我如何获得不在一组中的所有结果?,sql-server,tsql,Sql Server,Tsql,我加入两个表,然后我想加入第三个表,但我想得到不加入的记录的结果。我真的不知道用什么来做这件事。我可以搜索出现在联接外部的空值吗?一般来说,执行此操作的最佳方法是使用NOT in或NOT EXISTS,它们在SQL Server 2005+中的后台是相同的 它们优先于左连接…为空,因为它们短路-一旦找到匹配条件,将跳过该记录。LEFT JOIN加载整个数据集和关系,然后删除记录 SELECT a.* FROM TableA a <other joins> WHERE a.Compar

我加入两个表,然后我想加入第三个表,但我想得到不加入的记录的结果。我真的不知道用什么来做这件事。我可以搜索出现在联接外部的空值吗?

一般来说,执行此操作的最佳方法是使用NOT in或NOT EXISTS,它们在SQL Server 2005+中的后台是相同的

它们优先于左连接…为空,因为它们短路-一旦找到匹配条件,将跳过该记录。LEFT JOIN加载整个数据集和关系,然后删除记录

SELECT a.*
FROM TableA a
<other joins>
WHERE a.ComparisonField NOT IN (SELECT RelationField FROM OtherTable)

一般来说,执行此操作的最佳方法是使用notin或notexists,它们在SQL Server 2005+中的幕后是相同的

它们优先于左连接…为空,因为它们短路-一旦找到匹配条件,将跳过该记录。LEFT JOIN加载整个数据集和关系,然后删除记录

SELECT a.*
FROM TableA a
<other joins>
WHERE a.ComparisonField NOT IN (SELECT RelationField FROM OtherTable)


请提供所有3个表的模式以及预期输出的示例数据。一般来说,我认为您正在寻找EXISTS.+1@OMGPonies-这是我对这个问题的goto资源,它涉及很多。请提供所有3个表的模式以及预期输出的示例数据。总的来说,我想你是在寻找存在。+1@OMGPonies-这是我这个问题的goto资源,它出现了很多。不知道为什么我的问题被关闭了,因为这是我想要的答案谢谢!不知道为什么我的问题结束了,因为这是我一直在寻找的答案,谢谢!