我有内容表,我有很多内容和这些内容的各种版本。
列为content varchar
,document_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标识)?
谢谢,如果有人可以帮助我
答案 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
“分组”。