繁体   English   中英

C#和mysql,表联接

[英]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 ServerUPDATE语句

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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM