我有一张具有以下基本结构的表格。
unique_id | name | original | version
-----------------
1 | a1 | 1 | 1
2 | b1 | 2 | 1
3 | a2 | 1 | 2
4 | a3 | 1 | 3
5 | c1 | 5 | 1
6 | b2 | 2 | 2
现在应该很明显,有一种版本控制形式,我们可以跟踪原始文档,并跟踪当前文档的版本。
如果我想获取特定文档的最新版本,我会执行以下操作。
SELECT * FROM table WHERE original = (SELECT original FROM table WHERE id = 3) ORDER BY version DESC
我的问题是,如何只使用一个查询获取表格中所有最新版本的列表?
答案 0 :(得分:2)
想法是
SELECT * FROM table t INNER JOIN ( SELECT original, MAX(version) as version FROM tabel GROUP BY original ) tmax ON tmax.original = t.original and tmax.version = t.version