djp1988 Posté 2 Juin 2008 Partager Posté 2 Juin 2008 SELECT *FROM tableWHERE strict_name = 'ThisField'GROUP BY strict_nameORDER 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 Lien vers le commentaire Partager sur d’autres sites More sharing options...
Prélude Posté 2 Juin 2008 Partager Posté 2 Juin 2008 * et GROUP BY ne font pas bon ménage. Il faudrait sélectionner les champs qui seront utilisés uniquement. Lien vers le commentaire Partager sur d’autres sites More sharing options...
djp1988 Posté 2 Juin 2008 Auteur Partager Posté 2 Juin 2008 Pas de changement Lien vers le commentaire Partager sur d’autres sites More sharing options...
Kioob Posté 2 Juin 2008 Partager Posté 2 Juin 2008 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 Lien vers le commentaire Partager sur d’autres sites More sharing options...
djp1988 Posté 2 Juin 2008 Auteur Partager Posté 2 Juin 2008 Oui mais en faite voici tout mon SQL, celui que j'ai montrer était seulement pour tester des solutions: 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 Lien vers le commentaire Partager sur d’autres sites More sharing options...
Kioob Posté 2 Juin 2008 Partager Posté 2 Juin 2008 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". Lien vers le commentaire Partager sur d’autres sites More sharing options...
djp1988 Posté 2 Juin 2008 Auteur Partager Posté 2 Juin 2008 (modifié) 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 Modifié 2 Juin 2008 par djp1988 Lien vers le commentaire Partager sur d’autres sites More sharing options...
Kioob Posté 2 Juin 2008 Partager Posté 2 Juin 2008 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. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant