Bonjour,<br/>
J'ai 3 tables dans ma base de données : <br/><br/>
-categories (id, name).<br/>
-products(id,name,description,price) <br/>
-catgories_product(category_id, product_id)<br/><br/>

un produit peut avoir plusieurs catégories ( exemple : produit X appartient à 2 catégories 'mode-hommes et mode-femmes) .<br/>
une catégorie peut appartenir à plusieurs produits. <br/>

Je veux une requete SQL qui permette de selectionner tout les produits qui appartiennent aux catégories Mode-hommes ET Mode-femmes. (Avec une conditions AND) <br/>

Merci d'avance pour votre aide.

2 réponses


lynxfg
Auteur
Réponse acceptée

Merci bien Huggy.
ça marché

Si j'ai bien compris, tu souhaites faire l'intersection
MySQL ne gère par le mot clé INTERSECT qui serait bien pratique :-(
tu peux t'en sortir comme ceci (en supposant qu'on ait les 2 id des deux catégories h et f que j'appelle $homme et $femme)

SELECT P.* FROM products P INNER JOIN categories_product CP ON (P.id=CP.product_id) WHERE CP.category_id=$femme AND CP.product_id
 IN 
(SELECT P.id FROM products P INNER JOIN categories_product CP ON (P.id=CP.product_id) WHERE CP.category_id=$homme)