我的方法是
第一个:创建一个视图来替换行和另一个具有正确结果集的视图,应该像
一样附加
--查看更新
创建视图 ChangeTable1
作为
选择 table2.map、table2.authid、table2.name、table2.date、table1.map 作为 t1map、table1.authid 作为 t1authid...从 table1 到 table1.map=table2.map 和 table1.athid= 上的内部连接 table2 table2.autid
其中table1.time>table2.time
-- 附加视图
创建视图 Add2Table1
select table2.map, table2.authid,table2.name, table2.date... from table2 where concat(table2.map, table2.authid) not in (select concat(table1.map, table1.authid) from table1)
-- 基于第一个视图 ChangeTable1 的更新语句
update ChangeTable1 set t1date=date, t1somevalue=somevalue......
-- 插入基于第二个视图 Add2Table1 的语句
插入表 1 (map, authid, name, time, date, .... as select map, authid, name, time, date, ... from Add2Table1
我希望这有帮助。我主要做MS SQL,所以可能有一些语法问题需要翻译成MYSQL,Nils
如果你需要一个永久的过程来做这件事,你可以考虑把它放在一个存储过程中