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 ?
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 :
<code class="language-sql">SELECT t1.* FROM lms_attendance t1 WHERE t1.time = (SELECT MAX(t2.time) FROM lms_attendance t2 WHERE t2.user = t1.user);</code>
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>
Cependant, si vous n'avez besoin que d'un seul enregistrement par utilisateur, modifiez la requête comme suit :
<code class="language-sql">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);</code>
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!