Rufen Sie den neuesten Benutzerdatensatz für jeden Benutzer ab
Angenommen, Sie haben eine Tabelle mit den Check-in- und Check-out-Zeiten eines Benutzers („lms_attendance“). Um einen Einblick in ihre Aktivitäten zu erhalten, möchten Sie möglicherweise eine Ansicht, die die neuesten Aktivitäten jedes Benutzers (Einchecken oder Auschecken) anzeigt.
Um dies in SQL zu erreichen, können Sie die folgende Abfrage verwenden:
<code class="language-sql">SELECT t1.* FROM lms_attendance t1 WHERE t1.time = (SELECT MAX(t2.time) FROM lms_attendance t2 WHERE t2.user = t1.user);</code>
Diese Abfrage verwendet eine Unterabfrage, um die maximale Zeit für jeden Benutzer zu bestimmen und sicherzustellen, dass die letzte Aktivität erfasst wird. Das Ergebnis ähnelt der erwarteten Ausgabe:
<code>| ID | USER | TIME | IO | -------------------------------- | 2 | 9 | 1370931664 | out | | 3 | 6 | 1370932128 | out | | 5 | 12 | 1370933037 | in |</code>
Wenn Sie jedoch nur einen Datensatz pro Benutzer benötigen, ändern Sie die Abfrage wie folgt:
<code class="language-sql">SELECT t1.* FROM lms_attendance t1 WHERE t1.id = (SELECT t2.id FROM lms_attendance t2 WHERE t2.user = t1.user ORDER BY t2.id DESC LIMIT 1);</code>
Das obige ist der detaillierte Inhalt vonWie rufe ich den aktuellsten Datensatz für jeden Benutzer in einer SQL-Datenbank ab?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!