defaliz Posted November 5 Share Posted November 5 (edited) bonjour j'ai une requête qui fonctionne bien qui extrait les produits vendus dans 2 catégories (soins et accessoires) il se trouve que certains produits sont dans les 2 catégories et donc comme je souhaite compter les produits vendus par catégories ils y sont 2 fois... en SQL je cherche donc à ne pas additionner les produits qui sont dans les 2 catégories... je peux le faire en PHP mais je voudrais savoir si c'est possible en SQL... merci SELECT cl.`name` AS 'Catégorie',od.product_name AS 'Produits' , o.`date_add` FROM ps_order_detail od LEFT JOIN ps_orders o ON o.id_order = od.id_order INNER JOIN ps_category_product cp ON od.product_id = cp.id_product INNER JOIN ps_category_lang cl ON cl.id_category = cp.id_category WHERE cl.id_lang = 1 AND (cl.`name` = 'soins' OR cl.`name` = 'accessoires') AND o.`date_add` > "2021-12-31%" ORDER BY od.product_name ASC Edited November 14 by defaliz (see edit history) Link to comment Share on other sites More sharing options...
Eolia Posted November 5 Share Posted November 5 Ajoutez un GROUP BY od.product_id, od.product_attribute_id Link to comment Share on other sites More sharing options...
defaliz Posted November 5 Author Share Posted November 5 merci Eolia en faisant ceci ça ne me donne pas exactement le compte... si je le fais pour un produit précis 45 dans la catégorie "soins" 45 dans la catégorie "accessoires" avec ma requete on arrive à 90 en ajoutant votre "GROUP BY od.product_id, od.product_attribute_id" on arrive à 6...il en manque 🙂 en SQL on ne peut pas exclure un champ en double par exemple ? Link to comment Share on other sites More sharing options...
Eolia Posted November 5 Share Posted November 5 enlevez le , od.product_attribute_id pour voir Link to comment Share on other sites More sharing options...
Prestashop Addict Posted November 5 Share Posted November 5 SELECT cl.`name` AS 'Catégorie',od.product_name AS 'Produits' , o.`date_add` FROM ps_order_detail od LEFT JOIN ps_orders o ON o.id_order = od.id_order INNER JOIN ps_category_product cp ON od.product_id = cp.id_product INNER JOIN ps_category_lang cl ON cl.id_category = cp.id_category AND cl.id_lang = 1 WHERE (cl.`name` = 'soins' OR cl.`name` = 'accessoires') AND o.`date_add` > "2021-12-31%" GROUP BY o.id_order ORDER BY od.product_name ASC Link to comment Share on other sites More sharing options...
defaliz Posted November 6 Author Share Posted November 6 Merci à tous les 2 la requête de prestashop addict me regroupe tout par id order et donc je n'ai plus qu'un seul produit (alors que la commande en a 4 par exemple...) le GROUP BY od.product_id de eolia semble fonctionner, mais il faut que je regarde plusieurs cas de figure plus précisemment... je reviens vers vous dès que c'est fait... merci encore pour votre aide 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