1

现在我正在开发一个使用大量 SQL 数据库的 C# 软件。问题是我对 SQL 不是很友好...

所以,我有 3 张桌子

选项卡1:

ID| Ingrediente| Cant_disponibila
1 | mere | 250
2 | pere | 14
3 | nuci | 111

选项卡2:

ID_Recipe| Denumire
1        |  mere
2        |  pere
3        |  nuci

选项卡3:

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 ....."-" 表示减去 :) 所有这些 if 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# 软件中给我一个错误,上面写着“关键字连接附近的语法不正确”

4

2 回答 2

1

我认为您正在使用SQL Server而不是MySQL基于您的语法错误消息,这是一个UPDATE带有 join for 的语句SQL Server

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 = ''
于 2013-07-17T13:03:34.950 回答
0

您走在正确的轨道上,我只是认为您需要重新排序语法,如下所示:

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 = "...";
于 2013-07-17T13:04:18.597 回答