sql用于两个表之间的数据验证

时间:2018-10-05 14:39:28

标签: sql

我正在比较两个表(表1和表2)。每个表具有相同的四列:customerid,channeltreeid,producttreeid和同意状态。客户ID是链接表中每个记录的链接,但是在某些情况下,客户ID相同,但另一列中的值不同。如何找到所有此类记录(customerid相同但至少另一列不同的记录)?

2 个答案:

答案 0 :(得分:1)

我正在增强@TheImpaler给出的答案,以便仅输出最后3列中的一列或多列之间存在差异的行,因为这样我就可以理解要求。

select
    t1.customerid,
    t1.channeltreeid, t1.producttreeid, t1.consentstatusid,
    t2.channeltreeid, t2.producttreeid, t2.consentstatusid,
from table1 t1
join table2 t2 on t1.customerid = t2.customerid
where t1.channeltreeid <> t2.channeltreeid
or t1.producttreeid <> t2.producttreeid
or t1.consentstatusid <> t2.consentstatusid

答案 1 :(得分:0)

简单的连接即可:

select
    t1.customerid,
    t1.channeltreeid, t1.producttreeid, t1.consentstatusid,
    t2.channeltreeid, t2.producttreeid, t2.consentstatusid,
  from table1 t1
  join table2 t2 on t1.customerid = t2.customerid

无论如何,我真的认为这是一个不好的数据库建模。您应该修改并修复模型。