J'ai le tableau suivant :
id time text otheridentifier
-------------------------------------------
1 6 apple 4
2 7 orange 4
3 8 banana 3
4 9 pear 3
5 10 grape 2
Ce que je veux faire est de sélectionner les 3 enregistrements les plus récents (par ordre chronologique), dont otheridentifier
sont distincts. Donc, dans ce cas, le résultat serait id
's : 5, 4, et 2.
id
= 3 serait ignoré parce qu'il y a un enregistrement plus récent avec la même otheridentifier
champ.
Voici ce que j'ai essayé de faire :
SELECT * FROM `table` GROUP BY (`otheridentifier`) ORDER BY `time` DESC LIMIT 3
Cependant, je finis par obtenir des rangées de id
= 5, 3 et 1 au lieu de 5, 4, 2 comme prévu.
Quelqu'un peut-il me dire pourquoi cette requête ne renvoie pas ce que j'attendais ? J'ai essayé de changer le ORDER BY en ASC mais cela ne fait que réorganiser les lignes retournées en 1, 3, 5.
Merci pour votre aide !