0

我需要找到表 A 中存在但表 B 中不存在的项目。现在在 MySQL 中进行这样的连接非常简单

select * from A 
left join B on A.key=B.key 
where B.key is null

但是由于某种原因,这在 MSSQL 中不起作用。我创建了没有 where 子句的查询来查看所有结果,我只看到匹配项,而不是空值。你知道为什么这不起作用吗?

我知道我可以选择使用“当不存在时”,但我想知道连接不起作用的原因。

我正在添加代码供您查看

select Absences.CustomerID, b.* 
from (
    select * from openquery(JUAN_INTERFACE,'select cmp_wwn from Planet_Customers where   i_outcome =4')) b 
left join Absences on Absences.CustomerID = b.cmp_wwn 
where Absences.Type = 3223
4

1 回答 1

0

您的where子句正在过滤掉空值:

where Absences.Type = 3223

您从openquery子查询左连接到Absences; 然后仅过滤列中具有特定(非空)值的Absences行。

你的意思是反过来加入,从Absensesto openquery

于 2013-06-21T00:32:57.333 回答