gpt4 book ai didi

mysql - SQL 循环使用另一个表中的值填充值

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

因此给出2个表的表结构:

line_item

line_item_id  item_id   a_basic   a_original    b_basic      b_original    c_basic      c_original
1 1 NULL 5 NULL 2 NULL 1
2 1 NULL 6 NULL 100 NULL 5
3 2 NULL 10 NULL 50 NULL 15
4 2 NULL 2 NULL 12 NULL 100

项目

item_id   rate
1 1.5
2 2

我需要使用此计算来填充 line_item 表中的空值:

item.rate x x_original

所以对于 line_item_id: 1,它将是

a_original x item_id.rate (5 x 1.5)

这在支持 sql server 和 mysql 的 SQL 脚本中可能吗?

请注意,我们不能使用 View 或计算列作为要求。

最佳答案

这里不需要任何循环。通过简单的更新即可实现您的目标。

但是由于 MySQL 和 SQL Server 中的更新连接语法不同,因此您无法通过某些“通用”查询来完成此操作。

在 SQL Server 中应该是

update LI set
a_basic = coalesce(a_basic, LI.a_original * I.rate),
b_basic = coalesce(b_basic, LI.b_original * I.rate),
c_basic = coalesce(c_basic, LI.c_original * I.rate)
from line_item as LI
left outer join item as I on I.item_id = LI.item_id

在 MySQL 中应该是

update line_item as LI
left outer join item as I on I.item_id = LI.item_id
set
a_basic = coalesce(a_basic, LI.a_original * I.rate),
b_basic = coalesce(b_basic, LI.b_original * I.rate),
c_basic = coalesce(c_basic, LI.c_original * I.rate)

关于mysql - SQL 循环使用另一个表中的值填充值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34922193/

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