Mysql 在更新子查询选择中乘法
我正在尝试更新一个基于2个select子查询的表,该子查询将被多次使用以生成列的值 这是我的密码:Mysql 在更新子查询选择中乘法,mysql,Mysql,我正在尝试更新一个基于2个select子查询的表,该子查询将被多次使用以生成列的值 这是我的密码: UPDATE bahanmakanan SET Harga = (SELECT HargaSatuan from detail_bahanmakanan WHERE IDBahanMakanan = "BM01")* (SELECT jumlah from bahanmakanan WHERE IDBahanMakanan = "BM01") WHERE IDBahanMa
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
您只需使用
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'
请在执行该语句之前先备份数据库。尝试以下操作:
UPDATE bahanmakanan as t1
JOIN detail_bahanmakanan as t2 USING(IDBahanMakanan)
SET t1.Harga = t2.HargaSatuan * t1.jumlah
WHERE IDBahanMakanan = "BM01";
你能解释一下吗?