Maison >base de données >tutoriel mysql >Comment sélectionner les 3 enregistrements distincts les plus récents en SQL ?

Comment sélectionner les 3 enregistrements distincts les plus récents en SQL ?

Barbara Streisand
Barbara Streisandoriginal
2024-11-28 07:06:11942parcourir

How to Select the 3 Most Recent Distinct Records in SQL?

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn