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