Salut à tous,
Voilà, j'ai encore un petit problème sur une requête, ou j'ai un détail qui m'échappe !
J'ai une base mysql avec une table nommée ultrastar qui contient les données suivantes (échantillon):
Code :
- Chanson niveau joueur score date
- Creep 0 AAA 9680 09-07-2008
- Creep 0 BBB 9670 12-07-2008
- Come As You Are 0 BBB 9640 12-07-2008
- Imagine 0 CCC 9360 12-07-2008
- With or without you 0 AAA 9360 14-07-2008
- The Show Must Go On 0 AAA 9260 09-07-2008
- Creep 0 BBB 9250 12-07-2008
- Come As You Are 1 BBB 9220 12-07-2008
- Come As You Are 0 CCC 9200 14-07-2008
- With or without you 0 BBB 9200 12-07-2008
- Come As You Are 0 AAA 9160 09-07-2008
- Where did you sleep last night 0 BBB 9160 12-07-2008
- Creep 0 AAA 9030 12-07-2008
|
La requete que je souhaite faire est la suivante : je veux prendre le meilleur score de chaque joueur pour chaque chanson pour chaque niveau.
Donc en gros, je ne veux pas me soucier de l'information "date du score", cependant, je souhaite malgré tout qu'elle apparaisse dans le résultat final.
J'ai donc écrit qqchose comme ça :
Code :
- 'SELECT chanson, niveau, joueur as player, max(score) as best, date from ultrastar GROUP BY joueur, niveau, chanson ORDER BY '.$sort.' '.$sens;
|
Problème : il m'affiche bien les lignes souhaitées, mais la valeur pour la colonne "date" n'est pas la bonne, par exemple il va me sortir un truc du style :
Creep 0 AAA 9680 <B>12-07-2008</B>
au lieu de :
Creep 0 AAA 9680 <B>09-07-2008</B>
Il me sort donc bien la liste des meilleurs scores par joueur par chanson, mais il n'affiche pas forcément la bonne date en face...
J'ai essayé d'ajouter "date" au GROUP BY, mais là du coup il me ressort toutes les lignes de la table (sans tenir le max(score) donc).
Comme m'en sortir ?
Merci de votre aide, par avance !
Message édité par totof74 le 16-07-2008 à 16:51:18