C#和mysql,表连接

时间:2013-07-17 12:56:43

标签: c# mysql sql

现在我正在使用一个使用大量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 =“某事”;

稍后编辑: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#软件给了我一个错误,上面写着“关键字连接附近的语法错误”

2 个答案:

答案 0 :(得分:1)

根据您的语法错误消息,我认为您使用的是SQL Server而不是MySQL,这是UPDATE语句,其中加入了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 = ''

答案 1 :(得分: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 = "...";