我有两个名为DB1和DB2的数据库,其中有一个名为movies
的表。 movie
包含movie_name
,year
,synopsis
,AKA
等。您可以看到synopsis
和AKA
列为空。我想匹配两列(movie_name
和year
)并将相同的结果插入到DB1的空列中。
DB1.movies
movie_name | year | synopsis | AKA
----------------------------------------
titanic | 1997 | |
matrix | 1999 | |
alien | 1979 | |
DB2.movies
movie_name | year | synopsis | AKA
----------------------------------------
titanic | 1997 | xxxxxxx | XXX
matrix | 1999 | yyyyyyy | YYY
alien | 1979 | zzzzzzz | ZZZ
之后,DB1.movies应如下所示:
DB1.movies
movie_name | year | synopsis | AKA
----------------------------------------
titanic | 1997 | xxxxxxx | XXX
matrix | 1999 | yyyyyyy | YYY
alien | 1979 | zzzzzzz | ZZZ
我该怎么办? 谢谢!
答案 0 :(得分:1)
这应该可以解决问题:
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。
答案 1 :(得分:1)
(我假设这些表在每个数据库中都被称为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