【问题标题】:Update from Select error syntax on mySql从 MySql 上的 Select 错误语法更新
【发布时间】:2015-12-15 18:21:26
【问题描述】:

我正在尝试直接在 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 服务器版本相对应的手册,以获得在 'FROM(SELECT l.qte, l.article_id_article 附近使用的正确语法 FROM ligne_sortie l,bon' 在第 3 行

【问题讨论】:

    标签: mysql


    【解决方案1】:

    您可以使用以下查询:

    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 syntax manpage

    【讨论】:

      【解决方案2】:

      试试这段代码。 SET 后删除 FROM

      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
      

      【讨论】:

        【解决方案3】:

        您可以使用 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 
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2012-05-16
          • 2018-09-08
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-06-11
          • 2016-07-23
          • 1970-01-01
          相关资源
          最近更新 更多