小编典典

选择另一个表中不存在的值

sql

我有两张表

表A:

ID
1
2
3
4

表B:

ID
1
2
3

我有两个要求:

  • 我想选择表A中表B没有的所有行,在本例中为第4行。
  • 我想删除表B没有的所有行。

我正在使用SQL Server 2000。


阅读 174

收藏
2021-04-15

共1个答案

小编典典

您可以使用NOT IN

SELECT A.* FROM A WHERE ID NOT IN(SELECT ID FROM B)

但是,与此同时,我更喜欢NOT EXISTS

SELECT A.* FROM A WHERE NOT EXISTS(SELECT 1 FROM B WHERE B.ID=A.ID)

还有其他选择,本文很好地解释了所有优点和缺点:

我应该使用NOT IN,OUTER APPLY,LEFT OUTER JOIN,EXCEPT还是NOT
EXISTS?

2021-04-15