tchuss Posted November 3, 2016 Share Posted November 3, 2016 (edited) Bonjour à toutes et à tous ! J'essaye de remplacer la description d'un produit par celle d'un autre en SQL, j'ai écris la requête suivante : UPDATE ps_product_lang SET description=(select description from ps_product_lang where id_product=9) WHERE id_product=8 LIMIT 1 ; Apparemment c'est interdit, j'ai donc cherché d'autres pistes comme les tables dérivées : UPDATE ps_product_lang.t1 SET description.t1 = (SELECT description.t2 FROM ps_product_lang.t2 WHERE id_product.t2 = 9) WHERE id_product.t1=8 erreur 1142, UPDATE command denied to user : mais j'ai tous les droits. J'ai vu un truc sur le CTE, j'ai écris cela : USE nombdd; GO WITH ps_product_lang_cte (description) AS ( SELECT description AS test FROM ps_product_lang WHERE description = 9 ) UPDATE ps_product_lang AS test SET description = description AS test WHERE description = 8; GO Erreur de syntaxe. Je patauge depuis plusieurs jours, si quelqu'un connait un peu le SQL et l'utilisation d'un select dans un update Pitié ? Edited November 3, 2016 by tchuss (see edit history) Link to comment Share on other sites More sharing options...
Fernand WAFO Posted November 3, 2016 Share Posted November 3, 2016 Bonjour, Dans cette requête, j'imagine que tu as plusieurs langues et quand ce que tu sélectionnes te revoie plusieurs lignes. Il faut écrire autant de requête que de langue et en indiquant l'id de la langue des 2 côtés Bonjour à toutes et à tous ! J'essaye de remplacer la description d'un produit par celle d'un autre en SQL, j'ai écris la requête suivante : UPDATE ps_product_lang SET description=(select description from ps_product_lang where id_product=9) WHERE id_product=8 LIMIT 1 ; Link to comment Share on other sites More sharing options...
tchuss Posted November 3, 2016 Author Share Posted November 3, 2016 (edited) J'utilise pas le multilingue, et j'ai trouvé une astuce gourmande en ressources mais pour le moment ça me permet d'avancer. Je crée une table temporaire et je la détruis ensuite : CREATE TABLE ps_product_lang_t1 LIKE ps_product_lang; INSERT INTO ps_product_lang_t1 SELECT * FROM ps_product_lang; UPDATE ps_product_lang SET description = (SELECT description FROM ps_product_lang_t1 WHERE id_product = 9) WHERE id_product=8; DROP TABLE ps_product_lang_t1; J'essayais d'éviter ce genre de pratique, avoir un code plus élégant... Une idée ? Edited November 3, 2016 by tchuss (see edit history) Link to comment Share on other sites More sharing options...
Fernand WAFO Posted November 3, 2016 Share Posted November 3, 2016 OK 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