Heim  >  Artikel  >  Datenbank  >  MySQL erhält nach der Gruppierung den neuesten Datensatz

MySQL erhält nach der Gruppierung den neuesten Datensatz

大家讲道理
大家讲道理Original
2017-05-28 11:18:402215Durchsuche

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
und b.CreateTime

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!

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