[英]C# and mysql, tables join
现在我正在使用大量SQL数据库的C#软件上工作。问题是我对SQL不是很友好...
所以我有3张桌子
TAB1:
ID| Ingrediente| Cant_disponibila
1 | mere | 250
2 | pere | 14
3 | nuci | 111
TAB2:
ID_Recipe| Denumire
1 | mere
2 | pere
3 | nuci
TAB3:
ID| Recipe_ID |Ingrediente_ID | Cant_necesara
1 | 1 | 7 | 250
2 | 1 | 5 | 14
3 | 2 | 6 | 111
4 | 2 | 1 | 111
5 | 2 | 2 | 111
我需要执行下一个任务:cant_disponibila = cant_disponibila-cant_necesara .....“-”表示减法:)如果denumire =“ something”,所有这些都将减掉;)
稍后编辑:mysql中的查询是这样的:
UPDATE tab1 JOIN tab3 ON (ID = Ingrediente_ID) JOIN tab2 ON (ID_Recipe = Recipe_ID) SET Cant_disponibila = Cant_disponibila - Cant_necesara WHERE Denumire = "...";
问题是我的C#软件给我一个错误,提示“关键字join附近的语法不正确”
我认为您使用的是SQL Server
而不是基于语法错误消息的MySQL
,这是带有SQL Server
的UPDATE
语句
UPDATE a
SET a.Cant_disponibila = a.Cant_disponibila - c.Cant_necesara
FROM tab1 a
INNER JOIN tab3 c
ON a.ID = c.Ingrediente_ID
INNER JOIN tab2 b
ON b.ID_Recipe = c.Recipe_ID
WHERE b.Denumire = ''
您的方向正确,我只是认为您需要对语法重新排序,如下所示:
UPDATE tab1
SET Cant_disponibila = Cant_disponibila - Cant_necesara
FROM tab1
JOIN tab3 ON (ID = Ingrediente_ID)
JOIN tab2 ON (ID_Recipe = Recipe_ID) WHERE Denumire = "...";
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.