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 :
J'obtiens donc bien mon comptage de représentation de chaque classe pour chaque ronde du tournoi.
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
A cela je souhaite obtenir le %age de victoire de chaque classe pour chaque ronde, ma requête étant la suivante :
Elle fonctionne visiblement bien également.
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
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 !
Partager