pwerginz Posted September 6, 2017 Share Posted September 6, 2017 Kann mir jemand helfen, bin nicht so bewandert mit mysql : Ich habe viele Produkte (10 000) welche alle mit verschiedenenn Attributen/Variationen versehen sind. Ich müsste per SQL Abfrage alle Produkte mit einer bestimmten id_attribute_group und dazugehöriger id-attribute herausfiltern und für diese Produkte den Preis mit 5 multiplizieren. Habs selber probiert aber nicht hinbekommen. Vielleicht kann mir jemand von euch weiterhelfen. Mein Ansatz: SELECT *FROM `***.product` WHERE `id_attribute_group`=1 & ´id_attribute`=15 und das umschreiben vom Preis noch dazu . Vielen Dank im Vorraus Link to comment Share on other sites More sharing options...
SliderFlash Posted September 6, 2017 Share Posted September 6, 2017 https://www.prestashop.com/forums/topic/626500-sql-abfrage/ Link to comment Share on other sites More sharing options...
pwerginz Posted September 6, 2017 Author Share Posted September 6, 2017 kann mit dem post leider nichts anfangen.Bin momentan soweit:kann alle Produkte mit der variante auslesen : SELECT * FROM `ps_layered_product_attribute` WHERE `id_attribute`=15und ich kann per UPDATE den price ändern :UPDATE `ps_product` SET price=price*5 aber ich bringe es nicht zusammen dass er aus der ersten tabelle die Produkte auswählt und bei denen dann den Preis ändern . sprich soetwas in der art: UPDATE `ps_product` SET price=price*5 WHERE `ps_layered_product_attribute`.`id_attribute`=15 da fehlt mir die sql erfahrung Link to comment Share on other sites More sharing options...
SliderFlash Posted September 6, 2017 Share Posted September 6, 2017 mit Update müsste es gehen http://www.1keydata.com/de/sql/sql-update.php Link to comment Share on other sites More sharing options...
pwerginz Posted September 6, 2017 Author Share Posted September 6, 2017 Ja denke auch dass es mit update geht:UPDATE ps_productSET price=price*5WHEREps_layered_product_attribute.id_attribute=15 nun sucht er aber in der tabelle ps_product nach ps_layered_product_attribute.id_attribute=15 das findet er in der tabelle natürlich nicht(da der wert in einer anderen tabelle steht)ERROR: MySQL meldet: #1054 - Unknown column 'jan_layered_product_attribute.id_attribute' in 'where clause' wie kann ich der datenbank sagen dass in der anderen tabelle gesucht wird Link to comment Share on other sites More sharing options...
Scully Posted September 6, 2017 Share Posted September 6, 2017 Man muss dazu einen JOINED UPDATE schreiben. D.h. die tabelle ps_product muss einen Join auf die Attribut-Tabelle machen um die relevanten Produkte zu filtern und den Update nur auf dieser Menge durchzuführen. Ist eher SQL für Fortgeschrittene. Noch ein Hinweis: Die Tabelle ps_layered_product_attribute ist für den Join die falsche Tabelle. Diese Tabelle ist ein Zwischenspeicher für die Facettennavigation und für diesen Fall der falsche Aufhänger. Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now