我正在比较两个表(表1和表2)。每个表具有相同的四列:customerid,channeltreeid,producttreeid和同意状态。客户ID是链接表中每个记录的链接,但是在某些情况下,客户ID相同,但另一列中的值不同。如何找到所有此类记录(customerid相同但至少另一列不同的记录)?
答案 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
无论如何,我真的认为这是一个不好的数据库建模。您应该修改并修复模型。