我正在尝试根据其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中的供应商参考是主键
非常感谢您的帮助!
答案 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行。