我需要找到2个结构相同的sql表之间的差异
每个表都从第3部分工具上载到sqlserver数据库中。
表结构为:
Issue ID-status-Who
问题ID将在表中不再重复,尽管未明确定义为主键
任何两个表之间可能都有添加/删除/更新。
我需要的
Number of rows added & their details
Number of rows deleted & their details
Number of rows updates & their details
我该怎么做呢
1)使用sql更好吗
2)或使用数据表
最佳答案
您可以使用两个左联接和常规联接进行更新。关于TableA,这将向您显示添加,删除和更新的行。请注意,这些可能会污染到单个结果集中。
select b.*, 'added'
from tableb b
left outer join tablea a on b.IssueID = a.IssueID
where a.IssueID is null
select a.*, 'deleted'
from tablea a
left outer join tableb b on a.IssueID = b.IssueID
where b.IssueID is null
select a.*, 'updated'
from tablea a
join tableb b on a.IssueID = b.IssueID
where a.Status <> b.Status or a.Who <> b.Who
对于后者,请注意,如果需要处理空值,我认为您需要调整where子句。
如果表很大且正在进行中,则应考虑在连接列上添加索引。