Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.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 2008 TSQL中两个记录集之间的差异_Sql Server 2008_Tsql_Notin - Fatal编程技术网

Sql server 2008 TSQL中两个记录集之间的差异

Sql server 2008 TSQL中两个记录集之间的差异,sql-server-2008,tsql,notin,Sql Server 2008,Tsql,Notin,我正在使用Microsoft SQL Server 2008,我们有两个名为应用程序和注册的表。我想知道哪些申请没有转化为入学。如下图所示 我尝试使用NOT IN,但它仅适用于单个列。我有两列要比较。你能告诉我什么是最合适的方式吗?谢谢 另外,我无法更改数据库的结构,它们来自第三方供应商 试试看 旁注:比较类似解决方案的有趣答案 旁注:比较类似解决方案的有趣答案请改用: 改用: 最简单的方法可能是在应用程序和注册之间使用左连接——只返回注册为空的那些 即 最简单的方法可能是在应用程序和注册之间使

我正在使用Microsoft SQL Server 2008,我们有两个名为应用程序注册的表。我想知道哪些申请没有转化为入学。如下图所示

我尝试使用NOT IN,但它仅适用于单个列。我有两列要比较。你能告诉我什么是最合适的方式吗?谢谢

另外,我无法更改数据库的结构,它们来自第三方供应商

试试看

旁注:比较类似解决方案的有趣答案

旁注:比较类似解决方案的有趣答案

请改用:

改用:


最简单的方法可能是在应用程序和注册之间使用左连接——只返回注册为空的那些


最简单的方法可能是在应用程序和注册之间使用左连接——只返回注册为空的那些


另一种方法,使用

select  
        StudentID, 
        CourseID
FROM dbo.Applications
except
select  
        StudentID, 
        CourseID
FROM dbo.Enrolments

另一种方法,使用

select  
        StudentID, 
        CourseID
FROM dbo.Applications
except
select  
        StudentID, 
        CourseID
FROM dbo.Enrolments
SELECT a.* FROM Applications a
LEFT JOIN Enrolments e 
   ON a.StudentID = e.StudentID AND a.CourseID = e.CourseID
WHERE e.StudentID IS NULL
SELECT a.*
FROM Applications a
LEFT JOIN Enrolments e ON a.StudentID = e.StudentID AND a.CourseID = e.CourseID
WHERE e.StudentID IS NULL
select  
        StudentID, 
        CourseID
FROM dbo.Applications
except
select  
        StudentID, 
        CourseID
FROM dbo.Enrolments