SQL 在一个 table 中查找具有值但在另一个 table 中不具有值的记录

SQL to find record with a value in one table but not another table

我有两个 table:地址和 Address_Backup。每个 table 可以包含一个人的多行数据,因为这个 table 中存储了多种地址类型。所以数据看起来像这样:

ID    Code   Description  Description2  City   State
6798  HOME   478 Elm      NULL          Boise  ID
6798  OTHER  405 S Main   NULL          NULL   NULL

Address_Backup 应该与 Address 相同,但我们发现 Address_Backup 中存在的一些数据在 Address 中不存在。我需要一个查询,将两个 table 和 returns 数据中的 ID 号连接起来,以获取 Address_Backup table 中存在“其他”代码类型但不存在的地址存在于地址 table.

假设您的 ID 在 table 中都没有变化,因此地址中的 ID 100 始终指向 Address_Backup 中的 ID 100:

  SELECT * 
    FROM Address_Backup
     WHERE ID NOT IN (SELECT ID FROM Address) AND Code = 'OTHER'

使用 NOT EXISTS

 SELECT * 
  FROM Address_Backup AS B
  WHERE NOT EXISTS (SELECT 1 FROM Address WHERE ID = B.ID) AND Code = 'OTHER'