mysql复杂查询和更新_复杂的MySql更新加入查询

有一个我面临的问题的例子。数据库表与平常略有不同,但需要以这种方式设置。

项目:id,order_id,其他字段

Items_Drinks:id,饮料,其他字段

订单:id,其他字段

Orders_Drinks:id,drink,other fields

我需要有一个更新查询,它将使用与Orders_Drinks id字段具有相同order_id的Items_Drinks饮料字段的总和来更新Orders_Drinks表。

Items: 1 1 ...

Items: 2 1 ...

Items_Drinks: 1 4 ...

Items_Drinks: 2 5 ...

Orders: 1 ...

Orders_Drinks: 1 9 ...

Orders_Drinks目前是正确的,但如果我要更新id为1到5的Items_Drinks,我需要一个更新命令来将ID为1的Orders_Drinks等于10。

最好是命令会更新Orders_Drinks的每条记录。

我知道我的数据库不典型,但我的应用程序需要它。这是因为所有条目都不需要Drinks表。 Drinks表中有超过5000个字段,因此如果每个记录都有这些细节,那么数据库就会变得越来越慢,没有任何理由。请不要告诉我重组数据库,这是必要的。

我目前在我的C#程序中使用for循环来做我需要的东西,但是拥有1个命令可以节省大量的时间!

这是我最好的尝试,但它会出现错误的"无效的群组功能"。

update Orders_Drinks join Items on Items.order_id=Orders_Drinks.id join Items_Drinks on Items_Drinks.id=Items.id set Orders_Drinks.drinks=sum(Item_Drinks.drinks);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值