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