Heim >Datenbank >MySQL-Tutorial >Wie rufe ich die PID der neuesten Zeile für jede eindeutige RID in MySQL ab?

Wie rufe ich die PID der neuesten Zeile für jede eindeutige RID in MySQL ab?

Patricia Arquette
Patricia ArquetteOriginal
2025-01-04 07:12:33147Durchsuche

How to Fetch the Latest Row's PID for Each Unique RID in MySQL?

Neueste Zeile pro Gruppe mit MAX() und GROUP BY abrufen

Stellen Sie sich ein Szenario vor, in dem Sie eine MySQL-Tabelle mit Spalten wie Zeitstempel, Kosten, RID usw. haben . Ihr Ziel ist es, die PID der letzten Zeile für jedes einzelne Rid abzurufen.

Sie haben dies mit folgendem Versuch versucht Abfrage:

SELECT MAX(timestamp),rid,pid FROM theTable GROUP BY rid

Die zurückgegebenen PID-Werte stimmten jedoch nicht mit den maximalen Zeitstempeln überein. Dies liegt daran, dass GROUP BY alle Spalten in der SELECT-Klausel berücksichtigt und die erste passende Zeile für jede Gruppe auswählt.

Um dies zu beheben, müssen wir den Wert und den maximalen Zeitstempel für jede Gruppe ermitteln. Wir können dies mithilfe einer Unterabfrage tun:

SELECT rid, MAX(timestamp) AS ts
FROM theTable
GROUP BY rid

Das Ergebnis dieser Abfrage sieht folgendermaßen aus:

rid | ts
-----|-----
1    | 2011-04-14 01:06:06
2    | 2011-04-14 01:05:41
3    | 2011-04-14 01:14:14

Jetzt können wir die Originaltabelle mit dieser Unterabfrage verknüpfen, indem wir „rid“ verwenden und Zeitstempel, um die gewünschten PID-Werte abzurufen:

SELECT theTable.pid, theTable.cost, theTable.timestamp, theTable.rid
FROM theTable
INNER JOIN 
(
    SELECT rid, MAX(timestamp) AS ts
    FROM theTable
    GROUP BY rid
) AS maxt
ON (theTable.rid = maxt.rid AND theTable.timestamp = maxt.ts)

Das Ergebnis dieser Abfrage liefert Ihnen PID, Kosten, Zeitstempel, und die letzte Zeile für jedes einzelne Rid löschen.

Das obige ist der detaillierte Inhalt vonWie rufe ich die PID der neuesten Zeile für jede eindeutige RID in MySQL 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