Sélection d'enregistrements distinctement récents avec SQL
Dans cette requête, la tâche consiste à extraire les trois enregistrements les plus récents d'une table tout en s'assurant que les valeurs d'une colonne spécifique, autreidentifiant, sont distinctes. L'instruction SQL suivante a été tentée :
SELECT * FROM `table` GROUP BY (`otheridentifier`) ORDER BY `time` DESC LIMIT 3
Cette requête a cependant donné des résultats inattendus en raison de la priorité du regroupement sur l'ordre dans SQL. Pour obtenir le résultat souhaité, une approche plus complexe est nécessaire :
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
Cette requête consiste en une instruction select imbriquée qui identifie l'enregistrement le plus récent pour chaque autre valeur d'identifiant distincte. Le résultat est ensuite filtré pour garantir que seuls les trois enregistrements les plus récents sont récupérés.
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!