2017-01-02 4 views
0

In MySQL versuche ich, die einzigen aktuellen Daten von jedem Benutzer zu erhalten. Ich bin courently die folgende AbfrageAbfrage des Abrufen eindeutigen letzten Wert aus Tabelle

Seine Rückgabe aller Werte von Benutzernamen und die Abfrage ist zu langsam. Gibt es eine Möglichkeit, es schneller zu machen und nur einen letzten Wert von jedem Benutzer zu erhalten?

+0

Fügen Sie die Struktur Ihrer Tabelle hinzu – Dekel

Antwort

1

hilft GROUP BY mit MAX() in einer Unterabfrage Sie jeden Benutzers letztes Datum zu finden. Mitmachen mit diesem Ergebnis:

SELECT t1.username, t1.value, t1.date 
FROM table t1 
JOIN (select username, max(date) as maxdate from table 
     group by username) t2 on t1.username = t2.username 
          and t1.date = t2.maxdate 
WHERE t1.date >= CURDATE() 
ORDER BY t1.date DESC 
1

meistens, wenn Sie nach dem neuesten Datum jedes Benutzernamens suchen. Hoffen, dass diese Abfrage

SELECT T.username, T.value, TT.date 
FROM table T 
WHERE T.Date = (SELECT MAX(TT.Date) 
       FROM table TT 
       WHERE TT.user = T.user) 
Verwandte Themen