Coincée avec une requete
Résolu
ephelya
Messages postés
282
Date d'inscription
Statut
Membre
Dernière intervention
-
ephelya Messages postés 282 Date d'inscription Statut Membre Dernière intervention -
ephelya Messages postés 282 Date d'inscription Statut Membre Dernière intervention -
Bonjour à tous,
J'ai une question sûrement très basique, mais j'ai beau chercher partout, je ne vois pas comment m'y prendre...
J'ai 3 tables, Produits, Propriétés et la table de jointure Prod_props, et j'ai besoin de faire des recherches du type "Le produit doit avoir la propriété X, la propriété Y et la propriété Z.
Quel type de requête je dois faire pour ça?
Merci d'avance pour votre aide, je sèche!!! :-/
J'ai une question sûrement très basique, mais j'ai beau chercher partout, je ne vois pas comment m'y prendre...
J'ai 3 tables, Produits, Propriétés et la table de jointure Prod_props, et j'ai besoin de faire des recherches du type "Le produit doit avoir la propriété X, la propriété Y et la propriété Z.
Quel type de requête je dois faire pour ça?
Merci d'avance pour votre aide, je sèche!!! :-/
4 réponses
Bonjour,
avez-vous déjà créer les tables ?
Sinon, je vous propose ce model.
produits
id_produit
nom_produit
....
Propriétés
id_propriété
nom_propriété
......
Prod_props
id_prod_props
id_produit
id_propriété
....
Pour savoir pour chaque propriété quel est le produit correspondant :
select produits.nom_produit, propriétés.nom_propriété
from propriétés, produits, prod_props
where produits.id_produit = prod_props.id_produit
and propriétés.id_propriété = prod_props.id_propriété;
avez-vous déjà créer les tables ?
Sinon, je vous propose ce model.
produits
id_produit
nom_produit
....
Propriétés
id_propriété
nom_propriété
......
Prod_props
id_prod_props
id_produit
id_propriété
....
Pour savoir pour chaque propriété quel est le produit correspondant :
select produits.nom_produit, propriétés.nom_propriété
from propriétés, produits, prod_props
where produits.id_produit = prod_props.id_produit
and propriétés.id_propriété = prod_props.id_propriété;
Bonjour,
Merci pour cette réponse, qui est toujours d'actualité! :-)
C'est bien la base que j'ai faite, mais cette requête me retourne simplement un liste de tous les produits avec les propriétés correspondantes. Moi j'ai besoin de chercher tous les produits qui ont plusieurs propriétés à la fois.
Je ne sais même pas si c'est possible de le faire en une seule requête...
Merci pour cette réponse, qui est toujours d'actualité! :-)
C'est bien la base que j'ai faite, mais cette requête me retourne simplement un liste de tous les produits avec les propriétés correspondantes. Moi j'ai besoin de chercher tous les produits qui ont plusieurs propriétés à la fois.
Je ne sais même pas si c'est possible de le faire en une seule requête...
d'ailleurs je ne sais pas non plus si c'est indispensable : je voudrais chercher en une seule requête pour faire un script php plus léger, mais sinon, je peux aussi tester les propriétés les unes après les autres.
J'ai tort de vouloir le faire en une seule requête?
J'ai tort de vouloir le faire en une seule requête?
j'ai résolu le pb, pour ceux que ça intéresse, voici le code qui fonctionne
Evidemment, 1, 2 et 6 étaient les propriétés qui m'intéressaient, il suffit de les modifier
SELECT prd.*, count(prp.id) nb
FROM produits prd
INNER JOIN prod_props cpp
ON cpp.idprod = prd.id
INNER JOIN props prp
ON cpp.idprop = prp.id
WHERE prp.id IN (1,2,6)
group by prd.id
HAVING nb >=3
Evidemment, 1, 2 et 6 étaient les propriétés qui m'intéressaient, il suffit de les modifier