voilou j'ai a réaliser un moteur de recherche dans le cadre de mon projet tutoré.
La requete ci dessous recherche toutes les Opportunites à partir d'une catégorie recherchée.
Mais j'obtiens des doublons et je ne vois pas pourquoi, je dois surement mal utiliser l'attribut distinct.. j'ai cherché mais ce que j'essaie ne marche pas.
Ma base est constituée comme ceci :
Table opportunites_prospect
- id_op
- intitule_op
- id_c (id_c = l'id du client fictif)
Table attrib_prospect
- id_vendeur
- id_c
Table produit_op
- id_op
- id_prod
Table produits
- id_prod
- id_cat
(j'ai simplifié en ne gardant que les champs strictement nécessaire a la jointure)
Supposons maintenant que j'ai 2 catégories de produits :
Fruits (id_cat = 2)
Légumes (id_cat = 3)
Au niveau des produits, j'ai 3 fruits
Fraise
Framboise
Pomme
tous les 3 rattachés a la catégorie 2 (jusque la je pense ne pas avoir perdu trop de monde, j'espère
Maintenant au niveau de mes opportunités (= 1 vente)
Opportunité 1 : Fraise
Opportunité 2 : Fraise + Framboise
Opportunité 1 : Pomme
Code
if($typ == "cat")
{
$req="
SELECT DISTINCT produit_op.id_op, produit_op.id_prod, opportunites_prospect.*, attrib_prospect.*, produits.*
FROM opportunites_prospect, attrib_prospect, produit_op, produits
WHERE opportunites_prospect.id_vendeur = attrib_prospect.id_vendeur
AND attrib_prospect.id_com = 1
AND opportunites_prospect.id_op = produit_op.id_op
AND produit_op.id_prod = produits.id_prod
AND produits.id_cat = 2
}
En faisant cette requete j'obtiens 4 résultats au lieu de 3
Opportunité 1 : Fraise
Opportunité 2 : Fraise + Framboise
Opportunité 2 : Fraise + Framboise
Opportunité 1 : Pomme
Je vois bien d'ou vient le problème, la requete test fraise puis framboise (pour l'opportunité 2),
mais dès lors je voudrais juste obtenir une seule fois le résultat (en n'ayant comme id de test celui de l'opportunité (produit_op.id_op)
J'espère avoir été assez clair dans la présentation
Je ne comprends pas, je croyais que mon SELECT Distinct s'en occuperai.
MERCI
++
Julien
