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'
我有两个 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'