2013-05-22 81 views
6

我有两个数据库,我想用另一个数据库表中的值更新一个表。 我正在使用以下查询,但它不起作用。从另一个数据库更新mysql表select select查询

UPDATE database1.table1 
SET field2 = database2.table1.field2 
WHERE database1.table1.field1 = database2.table1.field1 

我也曾尝试下面的查询,但它不工作之一:

UPDATE database1.table1 
SET field2 = "SELECT field2 FROM database2.table1" 
WHERE database1.table1.field1 = database2.table1.field1 

回答

12

更新1

基于your commentmarkup应该是连接的一部分。下面是正确的:

UPDATE oman.ProductMaster_T 
    INNER JOIN main.ProductMaster_T 
     ON main.ProductMaster_T.ProductID = oman.ProductMaster_T.ProductID 
SET oman.ProductMaster_T.Markup = main.ProductMaster_T.Markup 

,你甚至可以添加一个ALIAS简化的说法,

UPDATE oman.ProductMaster_T o 
    INNER JOIN main.ProductMaster_T m 
     ON m.ProductID = o.ProductID 
SET o.Markup = m.Markup 
+0

我想这查询,查询不影响行运行。 – mmdel

+0

“UPDATE oman.ProductMaster_T.Markup INNER JOIN main.ProductMaster_T ON main.ProductMaster_T.ProductID = oman.ProductMaster_T.ProductID SET oman.ProductMaster_T.Markup = main.ProductMaster_T.Markup” PL。告知我我错在哪里 – mmdel

+0

'oman.ProductMaster_T.Markup' - 什么是'标记'?表名或列名? –