来自另一个表的MySQL UPDATE查询返回受影响的0行

时间:2012-03-31 01:59:34

标签: mysql

我正在尝试根据其supplier_reference从另一个表(tmp_bmb)更新一个表(ps_product)中的产品价格。

以下查询在MySQL中运行良好:

SELECT * FROM ps_product,tmp_bmb WHERE tmp_bmb.supplier_reference = ps_product.supplier_reference

并返回1700行。

但相应的(在我看来)UPDATE查询不会:

UPDATE ps_product,tmp_bmb SET ps_product.price = tmp_bmb.price WHERE tmp_bmb.supplier_reference = ps_product.supplier_reference

返回受影响的0行。

我的表格如下:

ps_product : supplier_reference |价

在ps_product.supplier_reference中,记录不是唯一的,也有空值。因此它不能成为主键。

tmp_bmb : supplier_reference |价格(这是新价格)

tmp_bmb中的

供应商参考是主键

非常感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

看起来你受到0行的影响,因为没有数据实际发生变化 - 也就是说,ps_product.price已经与tmp_bmb.price相同。

要确认这一点,请尝试初始查询:

SELECT * FROM ps_product, tmp_bmb WHERE tmp_bmb.supplier_reference = ps_product.supplier_reference and ps_product.price!=tmp_bmb.price;

你应该得到0行。