1

我有几张类似的桌子。我需要通过*.
我想获取每个行中revnr最高的行的列表docid

我的问题是我不知道如何max(revnr)为每个docid.

我正在使用 MySQL,但我更喜欢通用的 sql 解决方案。

谢谢!

4

1 回答 1

3

revnr您可以在子查询中获取每个的最新值,docID然后该结果将连接到表本身。

SELECT  a.*
FROM    tableName a
        INNER JOIN
        (
            SELECT  docID, MAX(revnr) max_val
            FROM    tableName
            GROUP   BY docID
        ) b ON  a.docID = b.docID AND
                a.revnr = b.max_val

为了获得更好的性能,请INDEX在两列上添加:docIDrevnr

ALTER TABLE tableName ADD INDEX (docID, revnr);
于 2013-01-29T08:51:08.033 回答