Mysql 为每个组选择具有最高值的整个记录

Mysql 为每个组选择具有最高值的整个记录,mysql,group-by,max,distinct,Mysql,Group By,Max,Distinct,我的CMS在同一个表中存储具有过去版本的页面。我想通过productID提取每个记录的最新版本。用于: productID version name text price etc etc ABC123 1.2 Fred Stuff 2.34 ... ... DEF456 0.3 Jill Other 1.99 ... ... ABC123 1.3 Fred Stuff 2.99 ... ... DEF456 0.4 Jill Oth

我的CMS在同一个表中存储具有过去版本的页面。我想通过
productID
提取每个记录的最新版本。用于:

productID version name text  price etc etc
ABC123       1.2  Fred Stuff 2.34  ... ...
DEF456       0.3  Jill Other 1.99  ... ...
ABC123       1.3  Fred Stuff 2.99  ... ...
DEF456       0.4  Jill Other 2.50  ... ...
ABC123       1.4  Fred Stuff 3.45  ... ...
我需要得到:

ABC123       1.4  Fred Stuff 3.45  ... ...
DEF456       0.4  Jill Other 2.50  ... ...
(任何命令)。我尝试了不同的方法

select distinct(version),* group by productID,max(version) from table;

但我不知道怎么做。“选择最高”的其他答案都是关于计数和总和的;我只需要完整的记录。

交叉应用会很好,但这是mySQL。。。所以

您需要生成一组数据,其中包含表的逻辑键和您感兴趣的最大值。然后连接回基础集

因此,
SELECT max(version)mv,productID from table group by productID
为我们获取每个productID的最大版本,然后我们可以将其连接回基本集以获取所需的其他数据

SELECT *
FROM Table A
INNER JOIN (SELECT max(version) mv, productID 
            FROM table 
            GROUP BY productID) B
 on A.ProductID= B.ProductID
and A.Version = B.MV