我知道这里有很多主题,但我无法弄清楚应该如何重写我的查询以使其工作:( 在这里我的查询。它应该从其他表中获取货币汇率并计算成本
update site_s_client_base_price
SET calculated_price_in_base_currency =
SELECT (site_s_currencies.rate * site_s_client_base_price.supplier_price) from
site_s_currencies, site_s_client_base_price
WHERE site_s_currencies.currency_id=site_s_client_base_price.currency_id
请帮帮我这个
答案 0 :(得分:1)
您无法在同一张桌子中进行选择和更新,因为它已被锁定,请使用上面的示例或使用
Update TABLE1 t1 set FIELD1= ( select field1 from TABLE1 t2 where .....)
答案 1 :(得分:0)
在您的情况下,您可以通过修复子查询来解决此问题。您不需要在内部from
子句中提及外部表。您想要一个相关的子查询:
update site_s_client_base_price bp
SET calculated_price_in_base_currency =
(SELECT c.rate * bp.supplier_price
FROM site_s_currencies c
WHERE c.currency_id = bp.currency_id
);