从另一个数据库中使用选择查询更新mysql表

7

我有两个数据库,我想从另一个数据库表中更新一个表格的值。我使用了以下查询语句,但它不起作用。

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
1个回答

18

更新 1

根据您的评论markup应该是连接的一部分。这是正确的查询语句:

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

你甚至可以添加一个别名来简化语句,

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

"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"请告诉我我哪里出错了。 - mmdel
oman.ProductMaster_T.Markup-- Markup 是什么?是表名还是列名? - John Woo
Oman是数据库,ProductMaster_T是表名,Markup是列名。 - mmdel
正是这个原因,我喜欢 Stack...我有一个淫秽的问题...即将要问一个问题,却发现这个问题已经被更好地表述了,而且还有一个很棒的答案,感谢 @JohnWoo! - Rocco The Taco
我收到了错误代码:1111。此查询中使用了无效的分组函数。 - Herbert Yeo

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接