Maison > base de données > tutoriel mysql > Comment récupérer la ligne la plus récente pour un identifiant donné en SQL ?

Comment récupérer la ligne la plus récente pour un identifiant donné en SQL ?

Barbara Streisand
Libérer: 2025-01-01 07:45:11
original
789 Les gens l'ont consulté

How to Retrieve the Most Recent Row for a Given ID in SQL?

Récupération de la ligne la plus récente pour un ID donné

Dans une situation où une table de base de données contient plusieurs lignes pour le même ID, elle peut il sera nécessaire d’extraire uniquement le plus récent. Cet article explique comment y parvenir en SQL.

En utilisant la table fournie comme exemple :

+----+---------------------+---------+
| id | signin              | signout |
+----+---------------------+---------+
|  1 | 2011-12-12 09:27:24 | NULL    |
|  1 | 2011-12-13 09:27:31 | NULL    |
|  1 | 2011-12-14 09:27:34 | NULL    |
|  2 | 2011-12-14 09:28:21 | NULL    |
+----+---------------------+---------+
Copier après la connexion

Agrégat MAX (signin) regroupé par ID

Pour obtenir l'heure de connexion la plus récente pour chaque ID, regroupez les lignes par ID et agrégez-les avec MAX(signin). Cela fournira une liste d'identifiants avec leurs dernières heures de connexion correspondantes.

Requête SQL :

SELECT 
 id, 
 MAX(signin) AS most_recent_signin
FROM tbl
GROUP BY id
Copier après la connexion

INNER JOIN contre une sous-requête

Pour récupérer l'intégralité de la ligne la plus récente pour un ID spécifique (par exemple, ID=1), utilisez un INNER JOIN par rapport à une sous-requête qui calcule le MAX(signin) par ID. Ensuite, filtrez les résultats en fonction de l'ID souhaité.

Requête SQL :

SELECT 
  tbl.id,
  signin,
  signout
FROM tbl
  INNER JOIN (
    SELECT id, MAX(signin) AS maxsign FROM tbl GROUP BY id
  ) ms ON tbl.id = ms.id AND signin = maxsign
WHERE tbl.id=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!

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