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

Comment récupérer la ligne la plus récente pour un identifiant donné dans une table SQL ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-12-29 08:35:11874parcourir

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

Identification de la ligne la plus récente pour un identifiant donné :

Le tableau fourni contient plusieurs lignes avec différents horodatages de connexion pour différentes valeurs d'identifiant. L'objectif ici est de récupérer la ligne la plus récente, en fonction de la colonne de connexion, pour une valeur d'identifiant spécifique (id=1).

Utilisation de MAX() Aggregate et GROUP BY :

Une approche pour y parvenir consiste à utiliser la fonction d'agrégation MAX() avec une clause GROUP BY. La requête suivante regroupe l'horodatage de connexion maximal pour chaque identifiant unique :

SELECT
  id,
  MAX(signin) AS most_recent_signin
FROM tbl
GROUP BY id;

Cette requête produit une table avec deux colonnes : id et most_recent_signin. La colonne most_recent_signin contient l'horodatage de connexion le plus récent pour chaque identifiant.

Récupération de l'enregistrement complet :

Cependant, si l'objectif est de récupérer l'enregistrement complet (y compris tous colonnes) pour la ligne la plus récente avec>

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;

Cette requête effectue un INNER JOIN entre la table tbl et une sous-requête (ms) qui sélectionne l'horodatage de connexion maximum pour chaque identifiant. Il filtre ensuite les résultats pour inclure uniquement la ligne avec>

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