寻找两个相同的mysql表之间的变化

时间:2015-02-11 12:30:35

标签: mysql join compare

让我的计划工作有点蠢蠢欲动。我从成员管理系统获得csv导出。计划是将此列表更新为wordpress数据库。为了完成这一点,我制作了两张桌子。 current_membersnew_members

首先我将csv导入new_members,我检查是否有新成员(与current_members比较),以及需要删除的成员,如果是,成员得到一个新标记或删除标记,(current_members.deleted = true& new_members.new = true。到目前为止,非常好。我只是使用这个简单的qyery:

UPDATE `new_memberSync` SET `new_memberSync`.`new` = '1' where `new_memberSync`.`regnr` NOT IN (select `regnr` from `current_memberSync`)

标记已删除的第二个查询:

UPDATE `current_memberSync` SET `current_memberSync`.`deleted` = '1' where `current_memberSync`.`regnr` NOT IN (SELECT `regnr` FROM `new_memberSync`)

接下来,我想对所有成员字段的内容进行检查。如果更新了成员,我想设置更新的标志。我已经提出了一个新的查询,但尚未完成,但我看到了一个已更改的成员列表。对于使用此查询找到的所有实例,如何将changed设置为1:

SELECT `new_memberSync`.`pe_code`,`new_memberSync`.`regnr`,`new_memberSync`.`voorletters`,`new_memberSync`.`roepnaam`,`new_memberSync`.`new`
FROM `new_memberSync`
JOIN `current_memberSync` ON `new_memberSync`.`regnr` = `current_memberSync`.`regnr`
WHERE `new_memberSync`.`roepnaam` <> `current_memberSync`.`roepnaam`
OR `new_memberSync`.`straatnaam` <> `current_memberSync`.`straatnaam`
OR .. 
OR .. ETC.

我尝试使用类似:UPDATE new_membersSync SET changed = 1 ON(此处查询)

0 个答案:

没有答案