gpt4 book ai didi

MySQL 将价格除以另一个表中的货币汇率

转载 作者:行者123 更新时间:2023-11-29 06:49:07 25 4
gpt4 key购买 nike

我有 2 个表,orders 和 order_detail。

订单

        id_order | currency | conversion_rate
--------------------------------------------
1 1 1
2 1 1
3 7 8.523856
4 1 1
5 1 1
6 7 8.457893
7 1 1

ORDER_DETAIL

        id_order | id_order_detail | price
--------------------------------------------
1 1 100
1 2 150
2 3 150
3 4 2500
3 5 2100
4 6 160
5 7 190
6 8 2300
6 9 1500
7 10 125

我需要将 order_detail 表 中的所有 prices 与来自 orders 表的 conversion_rate 以及相应的 order_id 其中货币不为 1 且费率不为 1(基本上将所有订单转换为默认货币,1)。

所以期望的结果是:

ORDER_DETAIL

        id_order | id_order_detail | price
--------------------------------------------
1 1 100
1 2 150
2 3 150
3 4 293.29449
3 5 246.367371
4 6 160
5 7 190
6 8 271.93533
6 9 177.349134
7 10 125

我做了一个查询:

UPDATE order_detail
SET price = price/orders.conversion_rate
WHERE orders.id_order = order_detail.id_order
AND orders.conversion_rate != 1
AND orders.currency != 1;

我现在被困在这里,因为它给出了关于未知列 orders.conversion_rate 的错误,尽管它就在那里。

请帮我完成这个查询。

最佳答案

您在查询中缺少关联两个表,因此您无法从订单表中获取数据。我在 INNER JOIN 查询中使用了 LEFT JOIN 来更新您的 orders_detail 表

UPDATE order_detail a
LEFT JOIN orders b
ON a.id_order = b.id_order
SET a.price = a.price/b.conversion_rate
WHERE a.id_order = b.id_order AND b.conversion_rate != 1 AND b.currency != 1;

关于MySQL 将价格除以另一个表中的货币汇率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16633486/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com