0
在MySQL中,我試圖獲取每個用戶唯一的最新數據。我正在做以下查詢查詢從表中獲取不同的最新值
SELECT DISTINCT username, value, date
FROM table
WHERE date >= CURDATE()
ORDER BY date DESC
它通過用戶名和查詢返回所有值慢。有什麼辦法讓它更快,並且只能獲得每個用戶的最新價值?
在MySQL中,我試圖獲取每個用戶唯一的最新數據。我正在做以下查詢查詢從表中獲取不同的最新值
SELECT DISTINCT username, value, date
FROM table
WHERE date >= CURDATE()
ORDER BY date DESC
它通過用戶名和查詢返回所有值慢。有什麼辦法讓它更快,並且只能獲得每個用戶的最新價值?
做一個GROUP BY
與MAX()
在一個子查詢找到每個用戶的最後日期。與結果加入:
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
主要是如果你正在尋找每個用戶名的最新日期。希望這有助於查詢
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)
添加您的表的結構 – Dekel