Partage
  • Partager sur Facebook
  • Partager sur Twitter

Problème de formulation de requête SQL

    20 novembre 2023 à 17:00:24

    Bonjour,

    Je tente de récupérer des infos dans ma base sql à l'aide d'une requête mais je n'arrive pas à la formuler pour que celà fonctionne.

    J'ai un site en php qui enregistre des parties de jeux de société dans ma base et je souhaiterais faire un classement des gens qui ont affronté le plus de joueurs différents lors d'un event.

    J'ai d'abord testé ceci :

    SELECT pseudo, COUNT(DISTINCT id_player) AS nb_players
           FROM bg_details
           JOIN bg_player ON bg_details.id_player = bg_player.id
           WHERE id_play IN (
                 SELECT bg_play.id
                 FROM bg_details
                 LEFT JOIN bg_play ON bg_play.id=bg_details.id_play
                 WHERE bg_play.id_event = 16
                 GROUP BY bg_play.id );

    mais ça me donne juste un pseudo avec une valeur incorrecte (qui correspond au nombre de joueurs différents).

    Ensuite je suis parti là dessus :

    SELECT
    	bg_details.id_player,
        COUNT(DISTINCT bg_details.id_play, bg_details.id_player) as nb_players
    FROM bg_details
    LEFT JOIN bg_play ON bg_play.id=bg_details.id_play
    WHERE bg_play.id_event= 16
    GROUP BY bg_details.id_player
    ORDER BY nb_players DESC;

    Mais ça me donne le nombre de parties de chaque joueur et non le nombre de joueurs différents affrontés.

    Voilà où j'en suis. Si quelqu'un a une idée pour me débloquer (et s'il vous faut plus d'infos) je suis tout ouie.

    Merci

    -
    Edité par bol2ry 22 novembre 2023 à 9:35:26

    • Partager sur Facebook
    • Partager sur Twitter
      20 novembre 2023 à 17:19:25

      Bonjour,

      Déplacement vers un forum plus approprié

      Le sujet est déplacé de la section PHP vers la section Base de données

      • Partager sur Facebook
      • Partager sur Twitter
        24 novembre 2023 à 11:09:32

        Soit j'ai enfin réussi à poser un problème insoluble, soit c'est tellement inintéressant que personne n'a pris le temps de regarder :p

        Ou alors j'ai mal formulé / pas donné assez d'infos... ça peut être le cas aussi :D

        • Partager sur Facebook
        • Partager sur Twitter
          4 décembre 2023 à 15:11:47

          Pourrais tu donner la modélisation de ta ou tes tables stp ?

          C'est quoi bg_details ? C'est quoi bg_play ?

          Comment tu sais qui affronte qui ?

          En l'état, le seul truc qui lie ton event aux joueurs, c'est le id_player dans bg_details, mais ca veut dire que tu peux avoir plusieurs lignes bg_details pour les différents joueurs ?

          Pour le moment, c'est juste pas très clair.

          -
          Edité par Tiffado 4 décembre 2023 à 15:12:48

          • Partager sur Facebook
          • Partager sur Twitter

          Problème de formulation de requête SQL

          × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
          • Editeur
          • Markdown