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

最も効率的なソリューションではありません。しかし、それは動作します

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

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 max(version),company_name from projects group by company_name
于 2013-02-14T04:14:16.283 に答える