Mysql是否可以使用join

时间:2019-04-28 15:49:09

标签: mysql join updates

我有一个包含多个表的数据库,我所有的查询都可以工作,但是我想拥有一个新的数据库,因此无法成功使其工作。 两个表“ 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中没有错误,但是即使更改某些命令顺序,查询也没有结果。 我想做的事是吗?

2 个答案:

答案 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"

并确定您没有过滤部分字符串,使用=代替了