J'aurais dû faire plus attention dans les classes de bases de données relationnelles, j'ai donc besoin d'aide.Sélectionnez le plus récent enregistrement correspondant à session_id
J'ai une table structuré comme si (il y a plus, mais je signale que des informations pertinentes):
+------------------+-------------+------+-----+-------------------+-------+
| Field | Type | Null | Key | Default | Extra |
+------------------+-------------+------+-----+-------------------+-------+
| session_id | char(32) | NO | | NULL | |
| file | varchar(30) | NO | | NULL | |
| access_time | timestamp | NO | | CURRENT_TIMESTAMP | |
+------------------+-------------+------+-----+-------------------+-------+`
Je veux sélectionner le champ file
du dossier avec le plus grand access_time
pour chaque session_id
. Donc à peu près la dernière page visitée dans chaque session.
J'ai essayé d'innombrables combinaisons de DISTINCT et de la clause GROUP BY, mais je n'arrive pas à m'en faire une idée pour quelque raison que ce soit. J'utilise MySQL. Aidez-moi, s'il vous plaît.
Cela ne le fait que pour un session_id; il a demandé pour chacun. – MarkusQ
Était en cours d'édition .... – cjk
Cela a fonctionné! (avec un peu de peaufinage). Voici la requête que j'ai utilisée: sélectionnez t1.session_id, t1.access_time, t1.file de la table AS t1 join (sélectionnez session_id, max (access_time) en tant que access_time du groupe de tables par session_id) comme t2 sur t1.session_id = t2.session_id et t1.access_time = t2.access_time; –