1

私は次の表を持っています

ID     Version         
---    ----------    
123      1           
124      2           
125      3           
126      4           
127      5           
128      6    

ここで、バージョン番号が最大の ID 値を取得する必要があります

私にできることは

select ID from tbl where version = (select max(version) from tbl)

この部分を別のクエリ内の結合で使用する必要があり、これ以上複雑にしたくないので、これを使用したくありません。

4

2 に答える 2

1

select FIRST()を使用できます:

SELECT FIRST(id) FROM tbl ORDER BY Version DESC

または、LIMIT 1オプションを使用して結果の数を制限します。

SELECT id FROM tbl ORDER BY Version DESC LIMIT 1
于 2013-03-04T06:30:52.763 に答える
0

結合でこれが必要だと言ったので、このようなものでそれを行う必要があります

select *
from table_1 as t1
  join (
      select id, 
             row_number() over (order by version desc) as rn
      from table_2
  ) as t2 on t1.id = t2.id and t2.rn = 1

(DBMSについて言及しなかったため、これはANSI SQLですが、最新のDBMSで動作するはずです)

于 2013-03-04T07:48:06.387 に答える