-1

我正在尝试基于 2 个选择子查询更新表,该子查询将相乘以生成 Harga 列的值

这是我的代码:

UPDATE bahanmakanan 
SET Harga = (SELECT HargaSatuan from detail_bahanmakanan 
    WHERE IDBahanMakanan = "BM01")* (SELECT jumlah from bahanmakanan 
    WHERE IDBahanMakanan = "BM01")

WHERE IDBahanMakanan = "BM01" ;

错误信息返回

Error Code: 1093. You can't specify target table 'bahanmakanan' for update in FROM clause
4

2 回答 2

3

您可以简单地使用JOIN,

UPDATE  bahanmakanan a
        INNER JOIN detail_bahanmakanan b
            ON a.IDBahanMakanan = b.IDBahanMakanan 
SET     a.Harga = a.jumlah * b.HargaSatuan 
WHERE   a.IDBahanMakanan  = 'BM01'

请在执行语句之前先备份您的数据库。

于 2013-05-02T14:22:04.660 回答
1

尝试这个:

UPDATE bahanmakanan as t1
JOIN detail_bahanmakanan as t2 USING(IDBahanMakanan)
SET t1.Harga = t2.HargaSatuan * t1.jumlah
WHERE IDBahanMakanan = "BM01";
于 2013-05-02T14:22:59.587 回答