0

我的数据库是

 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

我尝试通过此“选择不同的文件ID,从表名顺序按文件ID desc 的版本”

4

2 回答 2

3

我想你想要:

select fileid, max(version)
from t
group by fileid;
于 2013-07-30T11:49:28.123 回答
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` ) 
于 2013-07-31T09:35:50.543 回答