从mySql上的Select错误语法更新

从mySql上的Select错误语法更新,mysql,Mysql,我试图直接在mySql中执行这个查询,但它不起作用 UPDATE article a SET a.qte_art = (a.qte_art+(i.qte*1)) FROM( SELECT l.qte, l.article_id_article FROM ligne_sortie l, bon_sortie b, article a WHERE l.bon_sortie_id_sortie = b.id_bsr AND l.arti

我试图直接在mySql中执行这个查询,但它不起作用

UPDATE article a
SET a.qte_art = (a.qte_art+(i.qte*1))
FROM(
        SELECT l.qte, l.article_id_article
        FROM ligne_sortie l, bon_sortie b, article a
        WHERE l.bon_sortie_id_sortie = b.id_bsr 
        AND l.article_id_article = a.id_article
        AND b.id_bsr = 1 

    ) i
WHERE a.id_article = i.article_id_article
1064-您的SQL语法有错误;查看与您的MySQL服务器版本对应的手册,以了解可在“FROMSELECT l.qte,l.article\u id\u article”附近使用的正确语法 从3号线的ligne_出动l,bon'


试试这个代码。从后凝固中取出

UPDATE article a SET a.qte_art = (a.qte_art+(i.qte*1)) (
        SELECT l.qte, l.article_id_article
        FROM ligne_sortie l, bon_sortie b, article a
        WHERE l.bon_sortie_id_sortie = b.id_bsr 
        AND l.article_id_article = a.id_article
        AND b.id_bsr = 1 

    ) i WHERE a.id_article = i.article_id_article

试试这个代码。从后凝固中取出

UPDATE article a SET a.qte_art = (a.qte_art+(i.qte*1)) (
        SELECT l.qte, l.article_id_article
        FROM ligne_sortie l, bon_sortie b, article a
        WHERE l.bon_sortie_id_sortie = b.id_bsr 
        AND l.article_id_article = a.id_article
        AND b.id_bsr = 1 

    ) i WHERE a.id_article = i.article_id_article

您可以使用以下查询:

UPDATE 
  article a, 
  (
        SELECT l.qte, l.article_id_article
        FROM ligne_sortie l, bon_sortie b, article a
        WHERE l.bon_sortie_id_sortie = b.id_bsr 
        AND l.article_id_article = a.id_article
        AND b.id_bsr = 1 

    ) i
SET a.qte_art = (a.qte_art+(i.qte*1))
WHERE a.id_article = i.article_id_article
填写列/数据的通用查询为:

UPDATE
  table1 AS target,
  (SELECT column1, column2 FROM table2) AS source
SET
  target.column3 = source.column1
WHERE
  target.column4 = source.column2

这称为多表语法,有关详细信息,请参阅。

您可以使用以下查询:

UPDATE 
  article a, 
  (
        SELECT l.qte, l.article_id_article
        FROM ligne_sortie l, bon_sortie b, article a
        WHERE l.bon_sortie_id_sortie = b.id_bsr 
        AND l.article_id_article = a.id_article
        AND b.id_bsr = 1 

    ) i
SET a.qte_art = (a.qte_art+(i.qte*1))
WHERE a.id_article = i.article_id_article
填写列/数据的通用查询为:

UPDATE
  table1 AS target,
  (SELECT column1, column2 FROM table2) AS source
SET
  target.column3 = source.column1
WHERE
  target.column4 = source.column2

这称为多表语法,有关详细信息,请参阅。

您可以使用join语句进行更新,如下所示

update article a
join ligne_sortie l on l.article_id_article = a.id_article
join bon_sortie b on l.bon_sortie_id_sortie = b.id_bsr 
set a.qte_art = (a.qte_art+(l.qte*1))
where b.id_bsr = 1 

您可以使用join语句进行更新,如下所示

update article a
join ligne_sortie l on l.article_id_article = a.id_article
join bon_sortie b on l.bon_sortie_id_sortie = b.id_bsr 
set a.qte_art = (a.qte_art+(l.qte*1))
where b.id_bsr = 1