私のやり方は1番目です:行を置き換えるためのビューを作成し、次のように追加する必要がある正しい結果セットで別のビューを作成します
--view for update
create view ChangeTable1 as select table2.map, table2.authid,table2.name, table2.date, table1.map as t1map, table1.authid as t1authid... table1 から table1.map の内部結合 table2 へ=table2.map および table1.athid=table2.autid ここで、table1.time>table2.time
-- 追加用の
ビュー create view 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......
-- ステートメントに基づいて 2 番目のビュー Add2Table1 を挿入します。
テーブル 1 に挿入します (map、authid、name、time、date、.... select map、authid、name、time、date、... として Add2Table1 から)
これがお役に立てば幸いです。 MYSQL への変換が必要な構文の問題があります。Nils
これを行う永続的なプロセスが必要な場合は、これをストアド プロシージャに入れることを検討してください。