Soucis classement alliance - Version imprimable +- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org) +-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38) +--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51) +--- Sujet : Soucis classement alliance (/showthread.php?tid=1628) |
Soucis classement alliance - combo - 24-08-2007 Bonsoir, J'ai un petit soucis avec ma requete qui additionne les points pour les alliances. Elle additione les points des premiers membres avec le nombre de membres dans cette alliance. En gros ca donne : Membre1_points+Membes1_points+Membres2_points+Membres2_points Or, je voudrais qu'il fasse comme celà : Membre1_points+Membres2_points Voilà ma requête : Code PHP :
Si quelqu'un à une sollution, Merci. RE: Soucis classement alliance - NicoMSEvent - 24-08-2007 tu devrais essayer de groupes par "nom_alliance", il me semble que ça serait plus correct... RE: Soucis classement alliance - Globe - 24-08-2007 Je vais ptet paraître pour un con mais si j'ai bien compris ton problème il te suffirais de diviser ton résultat par deux... RE: Soucis classement alliance - uriak - 24-08-2007 Je suis étonné, tu peux mettre "alliances A" au lieu de "alliances AS A" ? (idem pour membres et M) sinon, au vu de la requête, je dirais que GROUP BY M.id_alliances, A.id_alliances, A.nom_alliance devrait avoir le même résultat... puisque ton LEFT JOIN doit aboutir à rune table du genre : A.nom_alliance A.id_alliance (= M.id_alliance) M.points RE: Soucis classement alliance - Roworll - 24-08-2007 Citation :Je suis étonné, tu peux mettre "alliances A" au lieu de "alliances AS A" ? (idem pour membres et M)Oui, le AS est optionnel pour les alias (enfin,faut voir avec le moteur). Histoire de faire plus propre, je ferai aussi le GROUP BY sur nom_alliance. Je me passerai aussi du LEFT JOIN (a moins que les alliances sans joueurs doivent apparaître). En gros, ça donnerai : Code PHP :
Tu as peut être des doublons dans la table membres. RE: Soucis classement alliance - uriak - 24-08-2007 faire le GROUP BY sur un champ texte comme nom_alliance n'est-il pas plus long que sur un id ? RE: Soucis classement alliance - Roworll - 24-08-2007 Niveau performances, je ne sais pas vraiment. C'est juste au niveau syntaxique. Dans MySQL, ceci Code : SELECT champ1, sum(champ2) from table1 group by champ3 Cette même syntaxe en Oracle ou SQL Server est incorrecte car champ1 n'est pas dans le group by. RE: Soucis classement alliance - uriak - 24-08-2007 ok mais il pourrait faire SELECT A.id_alliance, nom_alliance, sum(..) .... GROUP BY A.id_alliance RE: Soucis classement alliance - combo - 24-08-2007 Salut, Merci pour vos réponses. Je viens de modifier ma requête de tel sorte : Code PHP :
Seulement il m'affiche : SELECT nom_alliance, sum(membres.points) as points_alliance FROM alliances, membres WHERE membres.id_alliance = alliance.id_alliance GROUP BY nom_alliance : Column 'nom_alliance' in field list is ambiguous RE: Soucis classement alliance - Roworll - 24-08-2007 Apparemment, nom_alliance est dans les deux tables. Utilises alors alliance.nom_alliance dans le SELECT et le GROUP BY. (au passage, pas faux Uriak ^^) |