0

我有一个包含以下数据的表:

=========================================
| name        |  version   | project_id |
=========================================
| foo         |           1|           1|
| new foo     |           2|           1|
| bar         |           1|           2|
=========================================

如何编写返回每个产品的最高版本记录的查询?从上表中,我想要以下结果:

=========================================
| name        |  version   | project_id |
=========================================
| new foo     |           2|           1|
| bar         |           1|           2|
=========================================           
4

3 回答 3

4

测试台

在此处输入图像描述

查询

在此处输入图像描述

结果

在此处输入图像描述

赢得我的朋友:)

于 2012-05-25T15:17:16.957 回答
1
SELECT
  t1.name, t1.version, t1.project_id
FROM
  tablename t1
JOIN
  (SELECT max(version) as version, project_id FROM tablename GROUP BY project_id) t2
ON t1.project_id = t2.project_id AND t1.version = t2.version
于 2012-05-25T15:19:50.540 回答
0

一个非常简单的方法如下所示

select substring_index(group_concat(`name` order by version),',',-1) as `name`,
max(version) as version,project_id 
from your_table 
group by project_id 
order by projec`t_id;
于 2012-05-25T20:44:23.057 回答