--首先将28号之后的工作做完。
UPDATE volunteer_copy_old AS a INNER JOIN volunteer_copy AS b ON a.uid = b.uid AND a.sh_date > '2012-11-28 00:00:00'
SET a.area = b.area ,a.city_id = b.city_id,a.department = b.department
WHERE a.sh_date > '2012-11-28 00:00:00';
--28号之前的,department不空则处理
UPDATE volunteer_copy_old AS a INNER JOIN `module` AS m ON a.area = m.f_id AND (a.department IS NULL) AND (m.id BETWEEN '332' AND '388')
SET a.department = m.id
WHERE a.department IS NULL AND a.sh_date <= '2012-11-28 00:00:00';
--再提取新的填充,去重复
CREATE TABLE `newvol` (SELECT * FROM `volunteer` WHERE sh_date >= '2012-11-29 01:00:00';);
DELETE FROM `volunteer` WHERE (sh_date >= '2012-11-29 01:00:00';) AND uid NOT IN(SELECT MAX(uid) FROM `newvol` GROUP BY `card_id`);
--再完全信任新的填充
INSERT INTO `volunteer_copy_old` (*) SELECT * FROM `volunteer` WHERE sh_date >= '2012-11-29 01:00:00';
UPDATE volunteer_copy_old AS a INNER JOIN volunteer_copy AS b ON a.uid = b.uid AND a.sh_date > '2012-11-28 00:00:00'
SET a.area = b.area ,a.city_id = b.city_id,a.department = b.department
WHERE a.sh_date > '2012-11-28 00:00:00';
--28号之前的,department不空则处理
UPDATE volunteer_copy_old AS a INNER JOIN `module` AS m ON a.area = m.f_id AND (a.department IS NULL) AND (m.id BETWEEN '332' AND '388')
SET a.department = m.id
WHERE a.department IS NULL AND a.sh_date <= '2012-11-28 00:00:00';
--再提取新的填充,去重复
CREATE TABLE `newvol` (SELECT * FROM `volunteer` WHERE sh_date >= '2012-11-29 01:00:00';);
DELETE FROM `volunteer` WHERE (sh_date >= '2012-11-29 01:00:00';) AND uid NOT IN(SELECT MAX(uid) FROM `newvol` GROUP BY `card_id`);
--再完全信任新的填充
INSERT INTO `volunteer_copy_old` (*) SELECT * FROM `volunteer` WHERE sh_date >= '2012-11-29 01:00:00';