Bonjour,
Je désire affecter un score à chaque relation trouvée lors d'une requête avec un lEFT JOIN. Mes données sont réparties sur 3 tables.
Table expert
expert_id | name
1 | toto
2 | tutu
Table expert_skill
skill_id | expert_id
1 | 1
2 | 1
3 | 1
2 | 2
3 | 2
Table skill
skill_id | skill_name
1 | cool
2 | trop cool
3 | top
Lorsque j'effectue la requête suivante, le score (totalscore) résultant de la requête n'est pas correct. Lors de la recherche, la clause GROUP BY interfère avec le comptage des scores.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 SELECT *, (CASE WHEN expert_skill.skill_id = '2' THEN 1 ELSE 0 END) AS finalscores FROM expert LEFT JOIN expert_skill ON expert.expert_id = expert_skill.expert_id LEFT JOIN skill ON expert_skill.skill_id = skill.skill_id GROUP BY expert_id
Voici le résultat obtenu
toto : score = 1
tutu : score = 0
Une idée ?
Merci







Répondre avec citation






Partager