Votre question

Problème de Distinct MySQL

Tags :
  • MySQL
  • Programmation
Dernière réponse : dans Programmation
30 Août 2006 10:04:56

Je cherche à faire une requête qui ramène les derniers Gains triés par Game.

J'ai donc tenté ça :
  1. SELECT DISTINCT (Game),NickName,Gains.Gain,Date FROM Gains,Players WHERE PlayerId = Players.Id ORDER BY Gains.Date DESC,Gains.Gain DESC LIMIT 0,3

Mais il se moque de mon DISTINCT (ou alors prend tous les champs...).
Alors j'ai essayé ça :
  1. SELECT Game,NickName,Gains.Gain,Date FROM Gains,Players WHERE PlayerId = Players.Id GROUP BY Game ORDER BY Gains.Date DESC,Gains.Gain DESC LIMIT 0,3

Mais cela me regrouppe par jeu avant le tri par date, et je n'ai donc pas les bonnes sorties.

Quelqu'un aurait une idée de comment faire ?

Autres pages sur : probleme distinct mysql

30 Août 2006 10:21:35

Le SELECT DISTINCT Game, ca donne quoi ?
30 Août 2006 10:24:24

Le SELECT DISTINCT Game,... me ressort le même résultat que SELECT Game,... (et pareil que SELECT DISTINCT (Game),...)
Je pense qu'il fait un DISCTINCT sur tous les champs (et donc ressort toutes les lignes).
Contenus similaires
30 Août 2006 10:30:15

tu veux qu'il te sorte un seul champ game ? et plusieurs champ Gains ??
je vois pas comment ce sera possible...
30 Août 2006 11:06:45

En fait, j'ai en base :
Joueur1, 20€, 31/008/06, Jeu1
Joueur2, 30€, 29/008/06, Jeu2
Joueur3, 40€, 30/008/06, Jeu1
Joueur1, 10€, 28/008/06, Jeu3

Ce que je veux :
Joueur1, 20€, 31/008/06, Jeu1
Joueur2, 30€, 29/008/06, Jeu2
Joueur1, 10€, 28/008/06, Jeu3

Avec DISCTINCT, il me sort :
Joueur1, 20€, 31/008/06, Jeu1
Joueur3, 40€, 30/008/06, Jeu1
Joueur2, 30€, 29/008/06, Jeu2

Avec GROUP BY :
Joueur3, 40€, 30/008/06, Jeu1
Joueur2, 30€, 29/008/06, Jeu2
Joueur1, 10€, 28/008/06, Jeu3
a c 145 L Programmation
30 Août 2006 11:57:08

donc, tu veux les derniers gains pour chaque jeux?
Ton order by est donc faux, il ne faut trier que sur la date et faire un group sur les jeux.
30 Août 2006 12:10:37

J'ai essayé de mettre :
GROUP BY Game ORDER BY Gains.Date DESC,Gains.Gain DESC
mais ça ne me sort pas la bonne chose (en fait, ça regrouppe et donc garde le plus vieux de chaque jeu puis ordonne par date)

et :
ORDER BY Gains.Date DESC,Gains.Gain DESC GROUP BY Game
mais là j'ai un syntax error
a c 145 L Programmation
30 Août 2006 13:11:04

bon, récapitulons ce que tu veux:
tu cherches à obtenir, pour chaque jeu, le dernier joueur à avoir obtenu des gains, classé par date et par jeux?

Pourrais tu m'envoyer un dump de tes 2 tables (structure et contenus) par MP pour que je jette un oeil plus précis?
30 Août 2006 14:30:42

Voilà, je te les ai envoyé.
Merci beaucoup de ton aide !
Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS