supinfo
Orientez-vous vers les métiers du numérique, des métiers qui recrutent dans tous les secteurs d’activités  metiers-du-numerique.fr
Connexion :
 FAQ

Recherche

  
   Tout| Actus| Télécharger| Pilotes| Comparateur de prix| Dossiers| Forums| Jeux

5 messages
ok

MySQL Group BY et tri spécifique

Bonjour !

Petite question en MySQL, prenons par exemple une table toute bête :
id | nombre1 | nombre2
1 | 8 | 12
2 | 8 | 24
3 | 8 | 6
4 | 9 | 8

Je voudrais sélectionner uniquement la ligne ayant l'id maximum et le même nombre1
Pour l'exemple ca devrait retourner la ligne 3 et la ligne 4 (ligne 3 car c'est celle qui a l'id le plus élevé de celles qui ont le nombre1 = 8, pour la 4 c'est celle qui a l'id le plus élevé des lignes qui ont le nombre1=9).

J'ai tenté un SELECT * FROM table GROUP BY nombre1
Mais ca me retourne la 1ère ligne et la 4ème
si je fais :
SELECT * FROM table GROUP BY nombre1 ORDER BY id DESC
ca change rien
et
SELECT * FROM table GROUP BY nombre1, id DESC
mais ca me retourne tout :/

En fait il faudra spécifier un GROUP BY avec un tri spécifique, mais ca marche pas :/
 
 
je dis peut etre n'importe quoi, mais pourquoi pas essayer:

SELECT * FROM table GROUP BY nombre1, MAX(id)

:neutre:
 
 
je ne sais pas si c'est vraiment correct, mais tente toujours :neutre:a

<!--sql--><div class='sqltop'>SQL</div><div class='sqlmain'><!--sql1-->[color=blue;font-weight:bold]select[/color] * from table where id=([color=blue;font-weight:bold]select[/color] max(id) from table where nombre1 in ([color=blue;font-weight:bold]select[/color] distinct(nombre1) from table)) <!--sql2--></div><!--sql3-->

edit : ptite correction

<!--sql--><div class='sqltop'>SQL</div><div class='sqlmain'><!--sql1-->[color=blue;font-weight:bold]select[/color] * from table where id in ([color=blue;font-weight:bold]select[/color] max(id) from table where nombre1 in ([color=blue;font-weight:bold]select[/color] distinct(nombre1) from table)) <!--sql2--></div><!--sql3-->
 
 
<!--sql--><div class='sqltop'>SQL</div><div class='sqlmain'><!--sql1-->[color=blue;font-weight:bold]select[/color] max(id),nombre1 from table group by nombre1 <!--sql2--></div><!--sql3-->

ou

<!--sql--><div class='sqltop'>SQL</div><div class='sqlmain'><!--sql1-->[color=blue;font-weight:bold]select[/color] id,nombre1,nombre2 from table where id in ([color=blue;font-weight:bold]select[/color] max(id) from table group by nombre1) <!--sql2--></div><!--sql3-->
 
 
Merci, la dernière requète marche très bien :)
Par contre c'est quand même bizarre qu'on ne puisse pas trier un group by avec un champ spécifique oO
 
 
 
5 messages
ok
 
Vous devez être connecté pour écrire un message !
 

 Sujets Similaires:


 
Clubic.com
 
Achetez-facile.com
 
Jeuxvideo.fr
 
neteco.com
 
mobinaute.com