0

我在表“项目”中有以下记录:

company_name version
COY1         1
COY1         2
COY2         1

如果公司名称与此相同,我只想选择最高版本:

company_name version
COY1         2
COY2         1

我试过这个查询,但它似乎失败了......

$sql = "SELECT company_name from projects P1 where version=(select max(version) FROM projects P2 WHERE P1.company_name=P2.company_name)";

执行 select 语句的错误或正确方法是什么?非常感谢。

4

3 回答 3

0

http://sqlfiddle.com/#!2/e51472/4

SELECT company_name,max(version)as`Version` from projects
group by company_name; 
于 2013-02-14T04:10:23.880 回答
0

不是最有效的解决方案。但它有效

select company_name, 
       (
          select max(version) 
          from company where company_name = p1.company_name
       )

from (
       select company_name, 
              count(*)
       from company 
       group by company_name
     ) p1;

http://sqlfiddle.com/#!2/25d32/2

于 2013-02-14T04:03:51.823 回答
0
select max(version),company_name from projects group by company_name
于 2013-02-14T04:14:16.283 回答