Heim >Datenbank >MySQL-Tutorial >MySQL erhält nach der Gruppierung den neuesten Datensatz
Wie der Titel habe ich auch verwandte Lösungen im Internet gefunden. Viele der Antworten ähneln dieser SQL-Anweisung:
select Id,AccountId,Mark,max(CreateZeit) als Neueste von AccountMark als B-Gruppe nach AccountId
unter Verwendung der Max-Funktion . Aber in den Daten, die ich gefunden habe, scheint etwas nicht zu stimmen. Wie im Bild gezeigt, stimmen in den hervorgehobenen Daten das Feld „Mark“ und das Feld „CreateTime“ überhaupt nicht überein!
Was ist los? Ist es zuverlässig, in zu gruppieren, nachdem die Max-Funktion verwendet wurde?
Es gibt eine weitere Anweisung: select *,COUNT(AccountId) as Num from
(select * from AccountMark order by CreateTime desc) `temp`
group by AccountId order by CreateTime desc
Die auf diese Weise gefundenen Daten sind korrekt
Allerdings muss ich eine Ansicht erstellen und Abfragen sind in der Ansicht in nicht zulässig Mysql -Klausel. Kann mir bitte jemand eine SQL-Anweisung zur Verfügung stellen, die die korrekten Daten erkennen kann, ohne dass Klauseln angezeigt werden? Danke!
Lösung:
wählen Sie * aus AccountMark als b aus, wenn nicht vorhanden (wählen Sie 1 aus AccountMark aus, wobei AccountId= b.AccountId Das obige ist der detaillierte Inhalt vonMySQL erhält nach der Gruppierung den neuesten Datensatz. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!
und b.CreateTime