MySQL和c#:我如何从两个表中减去一个值?

时间:2017-04-11 20:42:25

标签: c# mysql

我试图从我目前的钱中减去价格。

这是我的查询。生病了更新要拥有的项目,其中Name =我在列表框中选择的内容。然后我会更新我的钱到钱 - 价格。但是它发回了一个错误,与FROM有关。

"UPDATE Items SET Owned = '1' WHERE Name = @RecipeId " + 
"UPDATE [User] SET Money = Money WHERE IsActive ='1' - Price FROM Items WHERE Owned ='1'

如果我从我的代码中移除"WHERE IsActive ='1'",它会减去,但它会对所有用户执行此操作,这就是为什么我要将"WHERE IsActive ='1'"添加到我的查询中

抱歉英语不好

2 个答案:

答案 0 :(得分:0)

第二个应该是:

UPDATE [User] SET Money = Money  - Price FROM Items WHERE Owned ='1' and IsActive ='1'

答案 1 :(得分:0)

也许你想要这个:

UPDATE u SET Money = u.Money - i.Price FROM [User] u, Items i
  WHERE i.Owned='1' AND i.IsActive = '1'

不确定IsActive是否来自Items表。 UserItem之间的链接是什么?您在User只有一条记录吗?

PS:最好使用Owned标志的数值,而不是char '1'。将其定义为tinyint并比较/分配Owned=1