我有一个包含多个表的数据库,我所有的查询都可以工作,但是我想拥有一个新的数据库,因此无法成功使其工作。 两个表“ vins”和“ producteurs”,在我的“ vins”表中有一个外键IDproducteur。 我需要从一个excel数据源更新``vins''表,在这种情况下,数据不一定总是准确地写入,并且需要更改``vins''表的某些记录的股票价值.p.nomproducteur和V.annee和v.nom是参数,但为了测试我设置了硬值。 我的查询如下:
UPDATE vins AS v
JOIN producteurs p
ON ( p.IDproducteur = v.IDproducteur AND p.nomproducteur LIKE "Charles" )
SET stock = 10
WHERE v.nom LIKE "Symphonie" AND v.annee = 2013
我有两条记录,其中生产者是“ Charles”,而V.nom是Symphonie,其中annee = 2010,而2013年。我在phpMyadmin中没有错误,但是即使更改某些命令顺序,查询也没有结果。 我想做的事是吗?
答案 0 :(得分:1)
在WHERE子句中放入条件p.nomproducteur LIKE "Charles"
:
UPDATE vins v
JOIN producteurs p ON p.IDproducteur = v.IDproducteur
SET stock = 10
WHERE
v.nom = "Symphonie" AND v.annee = 2013 AND p.nomproducteur = "Charles"
在这种情况下,也不需要LIKE
,只需一个简单的=
就可以。
答案 1 :(得分:0)
基于JOIN的更新通常在mysql中使用,因此请确保您的联接和条件真正匹配表中的值
UPDATE vins AS v
INNER JOIN producteurs p ON p.IDproducteur = v.IDproducteur
SET v.stock = 10
WHERE v.nom = "Symphonie"
AND v.annee = 2013
AND p.nomproducteur = "Charles"
并确定您没有过滤部分字符串,使用=代替了