return 仅左列中不存在于右列中的值。不需要与右列匹配的数据

return only values from the left column that do not exists in the right column. DO not need data matching with the right column

我只需要 return 左列中不存在于右列中的值。不需要与右列匹配的数据。

我有两个具有相同元数据的 table。左 table 有 11137 条记录,右 table - 9725。(仅供参考,左 table 有 8508 个唯一 ID_pk;右 table 有 - 7194 个唯一 ID_pk.) 我只需要 return 左边的所有行 table 而不是右边 table.

我已经尝试了各种关节和 CTE,但它 returns 94857 用于 just join 或 96463 用于 left join。

With CTE
AS
(Select * From ##GlobalTempTable_PW_2
Select CTE.ID_pk, CTE.[Dweling_fk], CTE.FieldID, CTE.House
From CTE Join ##GlobalTempTable_LA_2 LA on CTE.ID_pk = LA.ID_fk
);

我也试过使用 NOT EXISTS,但没有得到想要的结果。可能是我有逻辑错误。

Select * 来自##GlobalTempTable_PW_2私服 不存在的地方 ( Select ID_fk 来自 ##GlobalTempTable_PW_2 不存在的地方(Select PW.ID_fk 来自 ##GlobalTempTable_PW_2 PW 在 PW.ID_fk = LA.ID_fk);

加入 ##GlobalTempTable_LA_2 LA

此任务通常使用 NOT EXISTS:

完成
Select * 
From ##GlobalTempTable_PW_2 PW
WHERE NOT EXISTS (SELECT 1
                  FROM ##GlobalTempTable_LA_2 LA 
                  WHERE PW.ID_pk = LA.ID_fk)

此查询 returns 在 table ##GlobalTempTable_PW_2 中没有匹配记录的所有记录 table ##GlobalTempTable_LA_2.

我是这样做的:

SELECT pw.*
FROM ##GlobalTempTable_PW_2 pw
LEFT JOIN ##GlobalTempTable_LA_2 la
ON pw.ID_pk = la.ID_fk
WHERE la.ID_fk IS NULL

仅供参考:只有在按 UNIQUE 列连接表时才使用此方法。否则 LEFT JOIN 可能会重复一些结果