我的数据库是
id fileId version
1 1 1.0
2 1 1.1
3 2 1.0
4 2 1.1
5 2 1.12
所需的结果集是
id fileId version
2 1 1.1
5 2 1.12
我尝试这个“选择不同的fileId,来自tablename order by fileId desc的版本”
答案 0 :(得分:3)
我想你想要:
select fileid, max(version)
from t
group by fileid;
答案 1 :(得分:0)
SELECT f1.id, f1.fileID, f1.version
FROM files AS f1
LEFT JOIN files AS f2
ON f1.fileID = f2.fileID
AND f1.version < f2.version
WHERE f2.fileID IS NULL
另外,为了提高速度,建议在id和fileID上使用索引
ALTER TABLE `files` ADD INDEX ( `id` )
ALTER TABLE `files` ADD INDEX ( `fileID` )