Maison > base de données > tutoriel mysql > Comment récupérer la ligne la plus récente pour un identifiant spécifique dans une table de base de données ?

Comment récupérer la ligne la plus récente pour un identifiant spécifique dans une table de base de données ?

DDD
Libérer: 2024-12-29 09:01:11
original
650 Les gens l'ont consulté

How to Retrieve the Most Recent Row for a Specific ID in a Database Table?

Récupérer la ligne la plus récente en fonction de l'ID

Dans une table de base de données contenant plusieurs lignes pour chaque ID, la tâche consiste à récupérer uniquement la ligne la plus récente ligne récente pour un ID spécifié. Considérez le tableau ci-dessous :

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

Pour obtenir la ligne la plus récente avec ID = 1 en fonction de la colonne 'signin', agrégez la colonne 'signin' à l'aide de la fonction MAX() et regroupez par ID :

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

Cette requête renvoie le dernier horodatage de « signature » pour chaque identifiant.

Pour extraire la ligne complète associée au plus récent 'signin', effectuez une INNER JOIN sur une sous-requête qui renvoie le MAX('signin') pour chaque ID :

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

Cette requête récupère l'ID, la "signin" et la "signout" pour la ligne avec la « signature » la plus récente pour ID = 1.

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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal