0

私はmysqldbを使用しています。

sbs => select * from docbodyversion;

 bodyid | internaldocid | versionid
--------+---------------+-----------
   1121 |          1245 |         1
   1122 |          1245 |         2
   1124 |          1246 |         1
   1125 |          1246 |         2
   1126 |          1246 |         3

o / pが次のようになるように、このようなクエリを記述したいと思います-:

 bodyid | internaldocid | versionid
--------+---------------+-----------
   1122 |          1245 |         2
   1126 |          1246 |         3

したがって、各レコードの最大バージョンIDのみが必要です。

誰かplzが私を導くことができますか?

4

3 に答える 3

1

試す:

SELECT MAX(bodyId) AS BodyID,internaldocid, MAX(versionid) AS VersionID 
FROM docbodyversion GROUP BY internaldocid

このフィドルを見る

于 2012-08-09T09:04:59.620 に答える
1

これを試して:

select d.*
from docbodyversion d
join
    (select internaldocid,MAX(versionid) as versionid
     from docbodyversion
     group by internaldocid)a
on a.versionid=d.versionid
and a.internaldocid=d.internaldocid
于 2012-08-09T09:07:00.883 に答える
0

お役に立てれば


SELECT DISTINCT BT.BODY_ID, A.INTERNAL_DOC_ID, A.VERSION_ID
  FROM SO_BUFFER_TABLE_16 BT,
       (SELECT DISTINCT BT.INTERNAL_DOC_ID, MAX(BT.VERSION_ID) VERSION_ID
          FROM SO_BUFFER_TABLE_16 BT
         GROUP BY BT.INTERNAL_DOC_ID) A
 WHERE BT.VERSION_ID = A.VERSION_ID
   AND BT.INTERNAL_DOC_ID = A.INTERNAL_DOC_ID

于 2012-08-09T09:08:10.453 に答える