3 张表 - FK 完整性从 tb1 坏。TB2和TB3都很好。tb1 是主要的 - 我如何比较并找出 tb2 和 tb3 中哪些 id 不好



>我从Salesforce带来了我的数据。有一个用于案例的主表,它引用了"客户"表和"联系人"表。"客户"表和"联系人"表是合规的。"事例"表的"客户"和"联系人"表都有问题。我想清理两者之间的匹配数据并删除其余数据以创建完整性。我在下面使用了哪些匹配项。但是,我想知道什么不匹配,以及我是否有可以通过其他路由匹配它们的 ID。

有没有另一个语句可以用于不等于的东西?

SELECT Contact.AccountId AS Contact, Account.Id AS Account, [Case].ContactId AS [Case]
FROM Account
INNER JOIN [Case] ON Account.Id = [Case].AccountId
INNER JOIN
Contact ON Account.Id = Contact.AccountId AND [Case].ContactId = Contact.Id AND Account.Id = Contact.AccountId

最终,我想创建从案例到客户和联系人的FK关系。

你应该做一个左连接并检查空值,或者使用 not exists(( 查询:

SELECT Contact.AccountId AS Contact, Account.Id AS Account, [Case].ContactId AS [Case]
FROM Account
left JOIN [Case] ON Account.Id = [Case].AccountId
where case.accountid is null

SELECT Contact.AccountId AS Contact, Account.Id AS Account, [Case].ContactId AS 
[Case]
FROM Account
where not exists(elect * from case where case.accountid=account.id)

最新更新