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

Comment sélectionner les 3 enregistrements distincts les plus récents dans une table ?

Linda Hamilton
Libérer: 2024-12-01 04:59:09
original
722 Les gens l'ont consulté

How to Select the 3 Most Recent Distinct Records from a Table?

Sélection d'enregistrements distincts récents

Votre requête vise à récupérer les trois enregistrements les plus récents d'une table où les valeurs de la colonne otheridentifier sont distinctes . Cependant, l'approche actuelle utilisant GROUP BY et LIMIT donne des résultats inattendus.

Examinons le problème. L'opération GROUP BY combine les lignes avec le même autre identifiant. Étant donné que le classement s'effectue après le regroupement, l'enregistrement le plus récent de chaque groupe n'est pas nécessairement sélectionné.

Solution avec sous-requête

Pour résoudre ce problème, une sous-requête peut être utilisée pour identifier le enregistrement le plus récent pour chaque autre identifiant distinct. Ces informations sont ensuite utilisées dans la requête principale pour sélectionner les enregistrements souhaités.

La requête suivante y parvient :

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
Copier après la connexion

Explication :

  • La sous-requête obtient l'identifiant de l'enregistrement le plus récent pour chaque autre identifiant unique.
  • La requête principale utilise ensuite ceci id pour récupérer les enregistrements correspondants de la table d'origine.
  • Les enregistrements sont classés par temps décroissant, et les trois plus récents sont limités par LIMIT 3.

En utilisant cette approche, le La requête renverra le résultat attendu : les identifiants 5, 4 et 2, représentant les trois enregistrements les plus récents avec d'autres valeurs d'identifiant distinctes.

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal