Bonsoir à tous,

Je vous remercie d'avance pour votre aide, je vais essayer de faire le message le plus précis possible. Je n'ai pas vu de demande similaire sur internet, désolé si plusieurs topics en parlent déjà.


Je vous donne le contexte: je souhaite afficher un tableau qui donne le nombre de match par joueur par groupe auquel il a joué. (il n'y a actuellement que 4 groupes)

je voudrais par exemple voir:
nom | match en 1 | match en 2 | match en 3 | match en 4
toto 3 2 0 1


J'ai 3 tables (si je me souviens bien, c'est souligné pour clé primaire, je mets la clé étrangère en italique):
dJoueur (idJoueur, nom, prenom)
dMatch (idMatch) // c'est pour distinguer les journées de championnats, ca pourra me servir plus tard)
dGdm (idGdm, idJoueur, idMatch, groupe)


J'ai essayé par 2 manières différentes:

1 j'ai testé par requête imbriqué, mais je suis bloqué sur le cas simple:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
SELECT 
    nom as p
FROM 
    dJoueur u
        Inner JOIN (
            SELECT COUNT(dGdm.idJoueur)             AS nbMatch 
            FROM dGdm 
            GROUP BY dGdm.idJoueur
        ) tor 
            ON u.idJoueur = tor.idJoueur
J'ai comme erreur: MySQL a répondu : Documentation
#1054 - Champ 'tor.idJoueur' inconnu dans on clause

J'ai essayé de mettre des tor au lieu des dGdm de partout, puis mettre des dGdm de partout, à chaque fois je bloque je ne comprends pas pourquoi.


j'ai donc essayé :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
SELECT j.nom, COUNT(g.groupe) AS nbM1, COUNT(g.groupe) AS nbM2, COUNT(g.groupe) AS nbM3, COUNT(g.groupe) AS nbM4
FROM  `dJoueur` j,  dGdm g, dMatch m
WHERE j.idJoueur = g.idJoueur
  AND g.idMatch = m.idMatch
 
  GROUP BY j.idJoueur, g.groupe
  having g.groupe =1
  having g.groupe =2
  having g.groupe =3
  having g.groupe =4
Ca ne marche pas. Sans le Having je sens que je suis proche de la solutions, j'ai 4 fois la même colonne mais plusieurs lignes.

J'ai la sensation qu'il faille que je fasse une requête imbriqué, mais même en lisant des articles un peu similaire je n'arrive pas à adapter à ma situation.

J'espère ne pas faire une erreur stupide, et je vous remercie encore de votre aide.