Maison > base de données > tutoriel mysql > Comment récupérer l'enregistrement le plus récent de chaque utilisateur dans une base de données SQL ?

Comment récupérer l'enregistrement le plus récent de chaque utilisateur dans une base de données SQL ?

Susan Sarandon
Libérer: 2025-01-13 13:01:45
original
923 Les gens l'ont consulté

How to Retrieve the Most Recent Record for Each User in a SQL Database?

Obtenez le dernier enregistrement d'utilisateur pour chaque utilisateur

Supposons que vous ayez un tableau contenant les heures d'arrivée et de départ d'un utilisateur ("lms_attendance"). Pour avoir un aperçu de leur activité, vous souhaiterez peut-être une vue qui montre la dernière activité de chaque utilisateur (enregistrements ou départs).

Pour y parvenir en SQL vous pouvez utiliser la requête suivante :

SELECT t1.*
FROM lms_attendance t1
WHERE t1.time = (SELECT MAX(t2.time)
                 FROM lms_attendance t2
                 WHERE t2.user = t1.user);
Copier après la connexion

Cette requête utilise une sous-requête pour déterminer la durée maximale de chaque utilisateur, garantissant ainsi la capture de l'activité la plus récente. Le résultat sera similaire au résultat attendu :

<code>| ID | USER |       TIME |  IO |
--------------------------------
|  2 |    9 | 1370931664 | out |
|  3 |    6 | 1370932128 | out |
|  5 |   12 | 1370933037 |  in |</code>
Copier après la connexion

Cependant, si vous n'avez besoin que d'un seul enregistrement par utilisateur, modifiez la requête comme suit :

SELECT t1.*
FROM lms_attendance t1
WHERE t1.id = (SELECT t2.id
                 FROM lms_attendance t2
                 WHERE t2.user = t1.user            
                 ORDER BY t2.id DESC
                 LIMIT 1);
Copier après la connexion

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 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