Version complète: sur le forum Webmaster Hub : Probleme de GROUP BY
Webmaster Hub > Création et exploitation de Sites Internet > Les langages du Net > SQL
djp1988
CODE
SELECT *
FROM table
WHERE strict_name = 'ThisField'
GROUP BY strict_name
ORDER BY n_data DESC


J'ai plusieurs lignes pour strict_name = 'ThisField' qui ont (valeur de clé primaire - n_data) 49 à 54

avec le SQL je voulais rechercher celui qui a le n_data le plus petit, mais mon sql me donne celui avec n_data = 51 ! Je ne comprends pas
Prélude
* et GROUP BY ne font pas bon ménage. Il faudrait sélectionner les champs qui seront utilisés uniquement.
djp1988
Pas de changement
Kioob
Faire un "GROUP BY strict_name" alors que le strict_name est fixe, c'est balo quand même.

Enlève le GROUP BY, ça devrait mieux fonctionner déjà...

Après pour avoir juste une ligne, deux solutions :
- faire un SELECT MIN(n_data) : le plus efficace à mon sens, mais ne permet de récupérer qu'un seul champ (ou presque)
- ajouter un ORDER BY n_data DESC LIMIT 0, 1
djp1988
Oui mais en faite voici tout mon SQL, celui que j'ai montrer était seulement pour tester des solutions:

CODE
SELECT *
                    FROM PHOTOS
                    GROUP BY person_in_photo
                    ORDER BY n_photo DESC
                    LIMIT 0,10


Mon but est d'avoir 10 lignes qui montre 10 liens vers des images, dont pour chaque personne photographier je ne retien qu'une donnee, mais je ne veux que la premiere photo de chaque personne, mais il se trouve que ma base de donnee melange les lignes et ne prend pas la premiere (donc n_photo) la plus basse, quand je parcours mes donnees dans la base de donnees parfois j'ai des lignes qui ne sont pas a leur place par rapport au numéro de ligne, et si ca été juste j'aurais as de probleme
Kioob
Dans ce cas je pense que le plus simple est d'utiliser une requête imbriquée, ou autre mécanisme du genre.

Une première pour obtenir les 10 "plus basses", puis la jointure pour obtenir les infos "détaillées".
djp1988
requête imbriquée C-A-D 2 requetes en 1 ?

Vois tu maintenant pourquoi ca serait tres bine que phpmyadmin range mes donnees selon l'ordre d'insertion
Kioob
La doc officielle à ce sujet : http://dev.mysql.com/doc/refman/5.0/fr/subqueries.html

Et non, MySQL (phpmyadmin n'a rien à voir là dedans) ne placera jamais tout seul les données dans l'ordre que tu voudrais.
Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'information, la mise en page et les images, veuillez cliquer ici.