Mysql 匹配两个数据库并将相同的行插入另一个数据库

Mysql 匹配两个数据库并将相同的行插入另一个数据库,mysql,sql,database,merge,Mysql,Sql,Database,Merge,我有两个名为DB1和DB2的数据库,其中有一个名为movies的表电影包含电影名称,年份,剧情简介,AKA等。您可以看到剧情简介和AKA列为空。我想匹配两列(movie\u name和year),并在DB1的空列中插入相同的结果 DB1.电影 movie_name | year | synopsis | AKA ---------------------------------------- titanic | 1997 | | matrix | 1999 |

我有两个名为DB1和DB2的数据库,其中有一个名为
movies
的表<代码>电影包含
电影名称
年份
剧情简介
AKA
等。您可以看到
剧情简介
AKA
列为空。我想匹配两列(
movie\u name
year
),并在DB1的空列中插入相同的结果

DB1.电影

movie_name | year | synopsis | AKA
----------------------------------------
titanic    | 1997 |          |
matrix     | 1999 |          |
alien      | 1979 |          |
movie_name | year | synopsis | AKA
----------------------------------------
titanic    | 1997 | xxxxxxx  | XXX
matrix     | 1999 | yyyyyyy  | YYY
alien      | 1979 | zzzzzzz  | ZZZ
movie_name | year | synopsis | AKA
----------------------------------------
titanic    | 1997 | xxxxxxx  | XXX
matrix     | 1999 | yyyyyyy  | YYY
alien      | 1979 | zzzzzzz  | ZZZ
DB2.movies

movie_name | year | synopsis | AKA
----------------------------------------
titanic    | 1997 |          |
matrix     | 1999 |          |
alien      | 1979 |          |
movie_name | year | synopsis | AKA
----------------------------------------
titanic    | 1997 | xxxxxxx  | XXX
matrix     | 1999 | yyyyyyy  | YYY
alien      | 1979 | zzzzzzz  | ZZZ
movie_name | year | synopsis | AKA
----------------------------------------
titanic    | 1997 | xxxxxxx  | XXX
matrix     | 1999 | yyyyyyy  | YYY
alien      | 1979 | zzzzzzz  | ZZZ
之后,DB1.movies应该如下所示:

DB1.电影

movie_name | year | synopsis | AKA
----------------------------------------
titanic    | 1997 |          |
matrix     | 1999 |          |
alien      | 1979 |          |
movie_name | year | synopsis | AKA
----------------------------------------
titanic    | 1997 | xxxxxxx  | XXX
matrix     | 1999 | yyyyyyy  | YYY
alien      | 1979 | zzzzzzz  | ZZZ
movie_name | year | synopsis | AKA
----------------------------------------
titanic    | 1997 | xxxxxxx  | XXX
matrix     | 1999 | yyyyyyy  | YYY
alien      | 1979 | zzzzzzz  | ZZZ
我能做什么?
谢谢

这应该可以做到:

UPDATE db1.table1 JOIN db2.table2 on db1.table1.movie_name = db2.table2.movie_name AND db1.table1.year = db2.table2.year SET db1.table1.synopsis = db2.table2.synopsis, db1.table2.AKA = db2.table2.AKA
注意:我不知道db1和db2中的表的表名,所以我分别称它们为table1和table2。

(我假设每个数据库中的表都称为
movies

如果希望在DB2中用电影替换数据(两个数据库中的表都有匹配的主键),则可以执行以下操作:

replace into db1.movies select * from db2.movies
如果只想更新现有行中的
synonpsis
AKA
字段,请执行以下操作:

update db1.movies mov1, db2.movies mov2
   set mov1.synopsis   = mov2.synopsis,
       mov1.AKA        = mov2.AKA
 where mov1.movie_name = mov2.movie_name

DB1和DB2真的是表和表上的名称、年份、概要、AKA字段吗?你的术语没有道理,你说得对,迈克。我无法完全解释。不同的数据库上有表。同一台服务器上有不同的数据库吗?是的,同一台服务器上有不同的数据库。谢谢。但我有同名的电影。我想使用“年份”表进行匹配。我已经更新了原始答案,以反映现在电影名称和年份之间的连接。