我的桌子看起来像:

id
caseid
status

表中的示例数据:
1   10    open
2   10    published
3   10    reopened
4   11    open
5   11    contact
6   11    response
7   11    published

我需要得到最后状态为caseid的所有publisheds。
因此在上面的例子中,只会检索到11(因为caseid 10稍后被重新打开)。
查询会是什么样子?
聚苯乙烯
我在用PDO处理准备好的语句。

最佳答案

select caseid from data d1 where d1.status = 'published'
and not exists (select * from data d2 where d1.caseid = d2. caseid
and d2.id > d1.id)

为了获得最佳性能,应该为id和caseid列编制索引。

10-06 06:14