使用WHERE进行MySQL交叉表更新

时间:2013-06-13 13:11:50

标签: mysql

以下是使用product中的数据更新表helper的简单查询。

UPDATE product p 
INNER JOIN helper h ON p.productcode = h.productcode
SET p.picture = h.picture;

但是如果我在末尾添加WHERE p.gotpicture=0来仅更新p.gotpicture = 0而不是整个表的记录,那么查询会更新0行。为什么呢?

2 个答案:

答案 0 :(得分:0)

我是测试员,它对我来说很好。

但你可以测试一下:

UPDATE product p , helper h
SET p.picture = h.picture
WHERE p.gotpicture=0 
AND p.productcode = h.productcode;

或者

UPDATE product p 
SET p.picture = (select h.picture from helper h where p.productcode = h.productcode)
WHERE p.gotpicture=0 
AND p.productcode in (select  h.productcode from helper h);

答案 1 :(得分:0)

你的问题很容易解决,只需遵循这个......

 UPDATE product p,helper h

   SET p.picture = h.picture

     where p.productcode = h.productcode

       and p.gotpicture=0;

试试上面的代码,你一定能够克服你的问题。