Bonjour,
Pour commencer je voudrais m'excuser de la non-clarté de l'intitulé du post car il m'est difficile de mieux expliquer le souci que je rencontre.
Pour simplifier mon problème voici la situation :
Je travaille sur une application php/mysql dont l'objectif est de gérer un ensemble de personnes (experts) possédant un nombre variable de compétences. J'en arrive au moment où je dois effectuer une requête qui me trouve toutes les personnes qui possèdent certaines compétences à un certain niveau.
Voici sommairement l'architecture des différentes tables :
table_experts
id | lastname | firstname | mail | ....
1 Marley Bob
2 Coben Kurt
table_competences
id | expert_id | name | value
1 1 X 3
2 1 Y 4
3 1 Z 4
4 1 A 2
5 2 X 4
6 2 Y 4
7 2 Z 4
8 3 X 3
9 3 Y 3
10 3 Z 3
Bon la première chose c'est que le choix de cette structure a été adoptée car le nombre de compétences d'un expert est variable (est-ce bien la bonne solution?)
Le vrai problème que je rencontre c'est que je dois afficher la liste des experts qui ont exactement telles compétences à tel niveau. Plus précisément, je veux par exemple tous les experts qui possède AU MOINS les compétence X=4 et Y=4 et z=4.
Donc ici le résultat de la requête ne doit me donner que l'expert_id 2.
J'ai bien regardé les requêtes en utilisant AND et OR, les jointures, etc.
Mais je n'arrive pas à trouver comment faire en sorte de trouver les experts qui ont : name=X, level=4 ET name=Y, level=4 ET name=Z, level=4.
Je ne suis pas sûr d'avoir été très clair et j'en suis désolé. Cependant, je suis persuadé que ce genre de problème arrive fréquemment, mais je ne vois pas comment "nommer" ce genre de souci dans google ou sur le forum (d'où mon problème d'intitulé de post).
Merci à vous^^.
Partager