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