0

我有 2 个名为 DB1 和 DB2 的数据库以及一个名为movies. movie包含movie_nameyearsynopsisAKA。如您所见synopsisAKA列是空的。我想匹配两列 (movie_nameyear) 并将相同的结果插入 DB1 的空列。

DB1.movi​​es

movie_name | year | synopsis | AKA
----------------------------------------
titanic    | 1997 |          |
matrix     | 1999 |          |
alien      | 1979 |          |

DB2.movi​​es

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

之后,DB1.movi​​es 应如下所示:

DB1.movi​​es

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

我能做些什么?谢谢!

4

2 回答 2

1

(我将假设movies在每个数据库中都调用了这些表。)

如果您想用 DB2 中的电影替换数据(并且两个数据库中的表具有匹配的主键),那么您可以执行以下操作:

replace into db1.movies select * from db2.movies

如果您只想更新现有行中的synonpsisand字段,请执行以下操作:AKA

update db1.movies mov1, db2.movies mov2
   set mov1.synopsis   = mov2.synopsis,
       mov1.AKA        = mov2.AKA
 where mov1.movie_name = mov2.movie_name
于 2012-08-03T17:21:58.850 回答
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。

于 2012-08-03T17:17:20.980 回答