对于我的生活,我似乎无法弄清楚如何做到这一点。
想象一下,我有一张包含以下数据的表:
| id | revision | deleted | passage
-------------------------------------
| 22 | 1 | 0 | O Romeo, Romeo, wherefore art thou Romeo?
| 22 | 2 | 0 | Oh Romeo, why are you a Montague??
| 22 | 3 | 0 | Yo Romeo, why you all bein a Montague up in here?
| 39 | 1 | 0 | Call me Ishmael
在这个例子中,假设我想要所有版本2。由于ID 39没有修订版2,因此我将使用修订版1进行修订。
| id | revision | deleted | passage
-------------------------------------
| 22 | 2 | 0 | Oh Romeo, why are you a Montague??
| 39 | 1 | 0 | Call me Ishmael
我尝试过玩过' MAX'有限制的查询,但我似乎无法做到正确。我确定这是一个我想念的简单伎俩,但似乎无法找到它。
如果ID只是一个不同的版本,它将保持不变。 PK正在进行id-revision。
感谢您花时间阅读本文!
答案 0 :(得分:0)
这是一种方法:
select t.*
from table t
where t.revision = (select max(revision)
from table t2
where t2.id = t.id and
t2.revision <= 2
);