从1个SQL语句中返回丢失的记录与另一个相比

时间:2012-11-27 12:32:36

标签: sql-server tsql

  • 当我添加额外的JOIN时,我的T-SQL语句A返回1100行。
  • 当我没有那个额外的JOIN时,我的T-SQL语句B返回990行。

除了语句A上的额外JOIN之外,这两个语句是相同的。

如何从两个不在语句B的结果集中的T-SQL语句中返回110条记录?

3 个答案:

答案 0 :(得分:3)

您的意思是EXCEPT or INTERSECT吗?

答案 1 :(得分:2)

如果没有看到您的查询,就无法更具体,但这是一般的想法:

SELECT 
  a.*
FROM 
( 
    --statement A
) a
LEFT OUTER JOIN 
(
    --statement B
) b 
  ON a.pk = b.pk
WHERE b.pk IS NULL

答案 2 :(得分:0)

尝试根据您的要求发布相同的查询或类似查询,然后您将得到正确的答案 试试下面的一个

select TBL1.c1.........TBL2.c1 ........... from TBL1 left join TBL2 on TBL1.pkcolumn=TB2.PKcolumn where TBL2.COLUMN is null