[Résolu] distinct? order by? mais ca ne fonctionne pas

distinct? order by? mais ca ne fonctionne pas [Résolu] - SQL/NoSQL - Programmation

Marsh Posté le 27-07-2005 à 13:13:51    

Bonjour à tous!
 
Je pense que vous allez vous dire que c'est super basic mais j'ai un peu tourné la requete mais non rien à faire :s
 
Explication de la requete que je souhaite:
Je veux afficher le pseudo et le nombre de points total dans un top 5
 
Voici les requetes que j'ai essayé:
1er requete
SELECT pseudo, SUM(pts) AS total_pts FROM utilisateur, point GROUP BY pseudo ORDER BY total_pts DESC LIMIT 5
Erreur MySQL:
Affichage OK mais à chaque pseudo cela affiche le nombre total de points de tout les membres
 
2eme requete
SELECT DISTINCT(pseudo), SUM(pts) AS total_pts FROM utilisateur, point ORDER BY total_pts DESC LIMIT 5
Erreur MySQL:
Mixing of GROUP columns (MIN(),MAX(),COUNT(),...) with no GROUP columns is illegal if there is no GROUP BY clause
 
 
Merci de m'éclaircir :)


Message édité par cvex le 27-07-2005 à 15:10:51
Reply

Marsh Posté le 27-07-2005 à 13:13:51   

Reply

Marsh Posté le 27-07-2005 à 13:57:42    

La 1ère requête est ok, il y manque juste la jointure entre utilisateur et point !

Reply

Marsh Posté le 27-07-2005 à 14:00:18    

C'est sur qu'un produit cartésien entre deux tables, c'est pas terrible pour faire un group by après...

Reply

Marsh Posté le 27-07-2005 à 14:02:22    

SELECT DISTINCT(pseudo), SUM(pts) AS total_pts FROM utilisateur, point GROUP BY (pseudo) ORDER BY total_pts DESC LIMIT 5  
 
en meme temps ca fé quelque mois que jai pas fais de sql


Message édité par pinpoy le 27-07-2005 à 14:02:44
Reply

Marsh Posté le 27-07-2005 à 15:10:24    

ui en effet ct la jointure et en meme tmp la requete de pinpoy ^^
merci beaucoup :)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed