代码之家  ›  专栏  ›  技术社区  ›  Aness

使用另一个表中的数据更新mysql

  •  0
  • Aness  · 技术社区  · 6 年前

    我有两张表,缓冲详细信息和库存。我想用缓冲区详细信息表中的数据更新stock表。

    CREATE TABLE `buffer_details` (  `Ref` varchar(20) COLLATE utf8_unicode_ci NOT NULL,   `Reference_produit` varchar(20) COLLATE utf8_unicode_ci NOT NULL,  `Qte` decimal(10,2) NOT NULL,   PRIMARY KEY (`Reference_produit`) USING BTREE ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci ROW_FORMAT=COMPACT;
    
    CREATE TABLE `stock` (`Reference` varchar(20) COLLATE utf8_unicode_ci NOT NULL, `qte` decimal(10,2) NOT NULL DEFAULT '0.00',  PRIMARY KEY (`Reference`) USING BTREE ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    

    我试过了,但它不起作用,我正在使用MySQL。请注意,它是qte=qte+(buffer_details.qte)

    Update (select * from buffer_details) AS D1,stock set stock.qte = stock.qte + D1.Qte WHERE stock.Reference = D1.Reference_produit
    
    1 回复  |  直到 6 年前
        1
  •  0
  •   Mureinik    6 年前

    可以使用更新联接语法:

    UPDATE stock s
    JOIN   buffer_details d1 ON s.reference = d1.reference_produit
    SET    s.qte = s.qte + d1.qte