获取内容组SQL的最新版本

时间:2011-05-13 20:56:46

标签: mysql sql greatest-n-per-group zend-db-table

我有内容表,我有很多内容和这些内容的各种版本。 列为content varchardocument_id int(标识许多版本之间的内容)和版本int

我想返回每个内容组的最新版本。我尝试使用这个SQL,但它只返回第一个版本,但我想要最后一个版本。order by不适用于group by。

SELECT * FROM content where id_project = 8 group by document_id order by version desc;

我如何获得所有独特内容的最新版本(独特内容由document_id标识)?

谢谢,如果有人可以帮助我

3 个答案:

答案 0 :(得分:1)

SELECT document_id,MAX(version) FROM content WHERE id_project = 8 GROUP BY document_id

答案 1 :(得分:1)

SELECT c1.* FROM content c1
  left join content c2 on c1.document_id = c2.document_id and c1.version < c2.version
 where c2.document_id is null
   and c1.id_project = 8 

答案 2 :(得分:0)

我相信你想要像

这样的东西
SELECT *
FROM content A
WHERE version = (
    SELECT MAX(version)
    FROM content B
    WHERE B.document_id = A.document_id
)
AND document_id = 8

假设每组版本都由document_id“分组”。