Bonjour à tous,

Je sollicite votre aide pour un petit blocage que je rencontre au niveau d'une requête SQL.

Pour mettre en situation sur ce que je souhaite faire :

Dans le but d'un suivi de tournoi, je récupère pour chaque ronde suisse les teams encore en lice (donc non disqualifiées) et je regarde dans la composition de chaque équipe les classes représentées. (druide, assassin etc...) A ce niveau là ça fonctionne et la requête est la suivante :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
SELECT COUNT(`id`), `nom_classe` FROM `freeze_cup` AS cup 
INNER JOIN `classes_tournoi` AS ct 
ON cup.classes LIKE CONCAT('%', ct.nom_classe, '%') 
WHERE `ronde` = '".$_GET['ronde']."' GROUP BY ct.nom_classe 
ORDER BY COUNT(`id`) DESC
J'obtiens donc bien mon comptage de représentation de chaque classe pour chaque ronde du tournoi.

A cela je souhaite obtenir le %age de victoire de chaque classe pour chaque ronde, ma requête étant la suivante :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
 
SELECT COUNT(cup.id), ct.nom_classe FROM `freeze_cup` AS cup  
INNER JOIN `cup_winrate` AS wr
      ON cup.team_name = wr.team_name
INNER JOIN `classes_tournoi` AS ct 
      ON cup.classes LIKE CONCAT('%', ct.nom_classe, '%')
WHERE cup.ronde = '".$_GET['ronde']."' AND wr.ronde = '".$_GET['ronde']."' GROUP BY ct.nom_classe ORDER BY COUNT(cup.id) DESC
Elle fonctionne visiblement bien également.

Le problème maintenant :

Pour mon affichage, je souhaite afficher l'une à côté de l'autre les valeurs de représentations et de %age de victoire de chaque classe, et souhaitais donc ordonner les résultats de ma seconde requête en fonction des résultats de la première. Puisque actuellement, avec ces deux requêtes, elles ne sont pas dans le même ordre.

Auriez vous une solution à m'apporter ? N'étant pas un grand adepte du SQL, j'ai l'habitude des requêtes "simples" mais j'arrive à un moment où ça ne passe plus Il se pourrait même que je n'ai pas besoin de deux requêtes et qu'une seule soit suffisante, mais j'avoue sécher un peu sur sa conception.

J'ai pour l'instant trié mes résultats par classe et non par représentation en attendant de régler ce blocage ^^'.

Si cela peut aider, voici comment se présentent les trois tables utilisées :

table cup_winrate :
Je récupère la liste des teams gagnantes de chaque ronde sous forme d'une simple liste :


table classes_tournoi :
Liste avec les classes autorisées dans le tournoi :


table freeze_cup :
Contient les informations de base sur les équipes :


Merci d'avance de vos réponses qui, je l'espère, pourront m'aider !