[MySQL] Problème de recherche sur 3 tables

Problème de recherche sur 3 tables [MySQL] - SQL/NoSQL - Programmation

Marsh Posté le 04-08-2005 à 15:14:26    

Bonjour à tous ! J'ai un problème de résultats en trop avec des requêtes de recherche. Donc j'ai 3 tables:
 
- Users:

Code :
  1. user_id    | user_Nom
  2. -----------------------
  3. 1          | Jean-Paul
  4. 2          | Patrick
  5. 3          | Marcel


- Produits:

Code :
  1. appli_id
  2. ----------
  3. 1
  4. 2
  5. 3


 
- Produits_users:

Code :
  1. user_id    | appli_id
  2. ----------------------
  3. 1          |         1
  4. 1          |         2
  5. 2          |         2
  6. 3          |         2
  7. 3          |         3


 
J'ai un formulaire de recherche en php avec lequel on doit pouvoir choisir les utilisateurs qui ont par exemple l'appli 1 ET l'appli 2, seulement je ne veux pas que ça m'affiche aussi ceux qui n'ont QUE l'appli 1 ou QUE l'appli 2.
 
Maintenant pour la requête:

Code :
  1. SELECT distinct(users.user_id), user_nom 'Nom'
  2. FROM users, produits, produits_users
  3. WHERE produits_users.appli_id=produits.appli_id AND produits_users.user_id=users.user_id


Jusqu'à la jointure c'est bon. Ensuite vient le test de sélection des appli (celui qui m'affiche tout les résultats dont ceux que je veux mais aussi ceux que je veux pas):

Code :
  1. AND ( (produits.appli_id='1') OR (produits.appli_id='2') )


Alors du coup j'avais essayé de faire ca:

Code :
  1. AND ( (produits.appli_id='1') AND (produits.appli_id='2') )


Mais ya plus aucun résultats :(
 
Comment puis-je procéder pour résoudre mon problème?
Merci d'avance!

Reply

Marsh Posté le 04-08-2005 à 15:14:26   

Reply

Marsh Posté le 04-08-2005 à 16:19:30    

Code :
  1. Select A.user_id,A.user_nom 'Nom'
  2. From
  3. (
  4. SELECT distinct(users.user_id), user_nom 'Nom'
  5. FROM users, produits, produits_users 
  6. WHERE produits_users.appli_id=produits.appli_id AND produits_users.user_id=users.user_id
  7. AND  (produits.appli_id='1')
  8. ) A,
  9. (
  10. SELECT distinct(users.user_id), user_nom 'Nom'
  11. FROM users, produits, produits_users 
  12. WHERE produits_users.appli_id=produits.appli_id AND produits_users.user_id=users.user_id
  13. AND  (produits.appli_id='2')
  14. ) B
  15. WHERE A.user_id=B.user_id


Message édité par betsamee le 04-08-2005 à 16:20:45
Reply

Marsh Posté le 04-08-2005 à 16:32:34    

:pt1cable: Je savais pas qu'il était possible de faire ce genre de requêtes, j'aurais pu chercher longtemps ;) Merci beaucoup !


Message édité par *LighTninG* le 04-08-2005 à 16:33:09
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed