Maison >base de données >tutoriel mysql >Comment sélectionner les 3 enregistrements les plus récents avec des valeurs uniques dans une autre colonne ?
Sélection des enregistrements les plus récents avec des valeurs distinctes : une approche révisée
La question présentée concerne la récupération des trois enregistrements les plus récents à partir d'une table basée sur sur une colonne de temps, avec la condition supplémentaire que ces enregistrements doivent avoir des valeurs distinctes dans une autre colonne, appelée autreidentifiant. Pour y parvenir, une requête SQL à multiples facettes est nécessaire.
Inconvénients de la requête originale
La requête initialement tentée a rencontré des limitations en raison de l'ordre inhérent des opérations dans SQL. Le regroupement s'effectue avant la commande, ce qui entraîne le renvoi de données incorrectes.
La requête révisée
Pour résoudre ce problème, une requête plus sophistiquée est requise :
SELECT * FROM `table` WHERE `id` = ( SELECT `id` FROM `table` as `alt` WHERE `alt`.`otheridentifier` = `table`.`otheridentifier` ORDER BY `time` DESC LIMIT 1 ) ORDER BY `time` DESC LIMIT 3
Explication :
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!