如何找到两个不同MySQL表中特定字段之间的差异?

时间:2012-10-12 08:39:20

标签: mysql

我得到了MySQL数据库的这个数据源。它会改变,但没有迹象表明从源头发生了什么变化。一种方法是创建一个OLD表和一个新表。在将数据馈送填充到NEW表之后,然后比较OLD表和OLD表中不存在的任何原因,将其视为新记录或已更改记录。顺便说一句,数据Feed中没有记录ID,因此我不能将其用作参考。

在MySQL中,如何比较OLD表和NEW表,在特定字段上获取新的或更改的列表?谢谢!

其他信息更新: 数据馈送是邮件列表,但源中的记录没有分配的ID。因此,必须比较每条记录中的一些字段以找到匹配项,但显示那些不匹配的字段。这样做的目的是制作一份报告,用于营销新客户的添加者,或者他们的信息是否已被更改。

此任务的重点是确定自上次Feed后数据Feed中的哪些记录是新记录还是已更改。饲料每晚完成。没有需要更新的数据库,我们只需要报告自上次提交以来新增/更改的内容。关键字段是Company_Name。

所以我需要知道如何进行MySQL查询来搜索旧表(这是昨天的数据源)并将其与新表进行比较。如果新表中不存在Company_name,则表示此客户已从邮件列表中删除。如果新表中存在Company_name,但旧表中不存在,则表示这是添加到邮件列表中的新客户。

这个MySQL可以找到新的记录吗?

SELECT * FROM old
WHERE old.company_name
NOT IN (
SELECT new.company_name
FROM new
WHERE old.company_name=new.company_name
);

0 个答案:

没有答案