Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1583 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  [MySQL] Problème de recherche sur 3 tables

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[MySQL] Problème de recherche sur 3 tables

n°1169922
*LighTninG​*
Posté le 04-08-2005 à 15:14:26  profilanswer
 

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!

mood
Publicité
Posté le 04-08-2005 à 15:14:26  profilanswer
 

n°1169990
betsamee
Asterisk Zeperyl
Posté le 04-08-2005 à 16:19:30  profilanswer
 

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
n°1170004
*LighTninG​*
Posté le 04-08-2005 à 16:32:34  profilanswer
 

: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

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  [MySQL] Problème de recherche sur 3 tables

 

Sujets relatifs
[MySQL]pb requete[Resolu]Détecter la position de la sourie probleme de click.
[SGBD/SQL] - MYSQL - champ datetime et now() par defaut[MySQL]Récupérer un seul enregistrement
Problème BDD MySQL chez FreeProblème dans mon code, résultat étrange
Problème de session et objets .....[MySQL] Selection d'un enregistrement aléatoire [Résolu]
Problème de mise en page sous IE7 
Plus de sujets relatifs à : [MySQL] Problème de recherche sur 3 tables


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR