SQL查询帮助 - 仅选择不存在的行

时间:2016-02-23 01:34:35

标签: sql sql-server

我知道之前已经问过这个问题,但我无法按照我需要的方式工作。

我在两个不同的模式中有两个相同的表。我们称它们为table1和table2。 table1是master,它包含所有条目... table2应该有重复的数据,但缺少一些行。我需要能够从table1中选择table2中缺少的那些行,我已经尝试了以下

select order, item from table1 where status = 133 and not exists 
(select order, item from table2 where status = 133)

但它总是没有结果。我猜我的语法错了,但想不出正确的方法

任何帮助?

1 个答案:

答案 0 :(得分:1)

你做得不对,你应该怎么做:

select order, item from table1 where status = 133 and not exists 
(select order, item from table2 where status = 133 and order = table1.order
and item=table1.item)

或者,另一种选择(未经测试):

(select order, item from table1 where status = 133)
except
(select order, item from table2 where status = 133)