Bonjour à tous,
Voilà j'ai un petit problème sur une requete SQL que je n'arrive pas à faire.
En fait je souhaite faire un programme qui permette d'exporter les scores du jeu "Ultrastar" (clone gratuit de singstar) vers une page web.
Mon idée serait qu'après avoir joué, on lance le programme qui irait chercher les scores dans le fichier ultrastar.db. (base au format sqllite) et qui remplirait une base mysql placé sur un compte chez free. Ceci afin de pouvoir faire un tableau de scores commun avec nos amis.
La base est composée de 2 tables :
US_Scores
-> SongID
-> difficulty
-> Player
-> Score
US_Songs
-> ID
-> Artiste
-> Title
-> Play (je crois mais ce champs, je m'en fout en fait : il comptabilise le nombre de fois qu'une chanson a été jouée).
Ce que je voudrais c'est extraire de la base la liste des meilleurs scores par chanson et par joueur, pour obtenir une seule ligne, par exemple :
artiste, titre, difficulty, player, score
Nirvana, Rape me, 0, toto, 5000
Nirvana, Rape me, 0, titi, 4500
Queen, Show must go on 0, toto, 3000
Etc....
Donc le meilleur score pour chaque joueur, sur chaque chanson et pour chaque difficulté.
J'ai essayé :
SELECT artiste, title, difficulty, player, score FROM us_songs, us_scores w WHERE us_songs.id=us_scores.songid GROUP BY player, score
Mais en fait ça me donne la liste complète (j'ai tous les scores pour un joueur sur une même chanson pour une même difficulté : or il me faut uniquement son meilleur score). Je pense qu'il faut faire une requête imbriquée, mais je n'arrive pas à la construire.
Quelqu'un a-t-il une idée, je pense que ce ne doit pas être très dur, mais je sèches (mes cours d'SQL sont beaucoup trop anciens).
(je précise qu'il s'agit du 'mod' ultrastar deluxe : dans la version normale les scores ne sont pas stockés dans une base de donnée).
Merci de votre aide par avance.
Message édité par totof74 le 08-07-2008 à 15:51:01