Heim >Datenbank >MySQL-Tutorial >Wie rufe ich den aktuellsten Datensatz für jeden Benutzer in einer SQL-Datenbank ab?

Wie rufe ich den aktuellsten Datensatz für jeden Benutzer in einer SQL-Datenbank ab?

Susan Sarandon
Susan SarandonOriginal
2025-01-13 13:01:45868Durchsuche

How to Retrieve the Most Recent Record for Each User in a SQL Database?

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn