Tedy Posted July 17, 2013 Report Posted July 17, 2013 salut, momentan lucrez la un proiect in c# care foloseste "la greu" mysql...(problema e ca nu sunt foarte prieten cu mysql) ...deci am urmatoare problema:am 3 tabele:tab1:ID| Ingrediente| Cant_disponibila1 | mere | 2502 | pere | 143 | nuci | 111tab2:ID_Recipe| Denumire1 | mere2 | pere3 | nucitab3:ID| Recipe_ID |Ingrediente_ID | Cant_necesara1 | 1 | 7 | 2502 | 1 | 5 | 143 | 2 | 6 | 1114 | 2 | 1 | 1115 | 2 | 2 | 111eu trebuie sa fac urmatorul task: sa scad din cant_disponibila in functie de reteta selectata cant_necesara si sa fac update cu diferenta lor, in cant_disponibila...later edit : query in mysql este asta:UPDATE tab1 JOIN tab3 ON (ID = Ingrediente_ID) JOIN tab2 ON (ID_Recipe = Recipe_ID) SET Cant_disponibila = Cant_disponibila - Cant_necesara WHERE Denumire = "...";Problema este ca imi "arunca" o eroare in momentul in care execut query-ul in aplicatia c#.... Quote
nedo Posted July 17, 2013 Report Posted July 17, 2013 Pune numele tabelelor intre " ' " ghilimele simple. Si eu am patit la fel si de cele mai multe ori problema aici este. Quote
Tedy Posted July 17, 2013 Author Report Posted July 17, 2013 (edited) Nu e de acolo...mai am un query de update si ala e ok...fara ghilimele si merge...am pus un try/catch exception si imi zice ca "incorect syntax near the keyword 'JOIN'" Edited July 17, 2013 by Tedy Quote
redox Posted July 17, 2013 Report Posted July 17, 2013 Cred ca sintaxa trebuie sa fie ceva de genulUPDATE tab1 SET Cant_disponibila = Cant_disponibila - Cant_necesarafrom tab1INNER JOIN tab3 ON (ID = Ingrediente_ID) INNER JOIN tab2 ON (ID_Recipe = Recipe_ID) WHERE Denumire = "..."; Quote
Tedy Posted July 17, 2013 Author Report Posted July 17, 2013 da, ai dreptate redox , acum primisem raspuns si pe stackoverflow , e tot ceva de forma a ceea ce ai zis tu , doar ca a redenumit tabelele 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.Nume = Quote