我的桌子看起来像:
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
的所有published
s。因此在上面的例子中,只会检索到
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列编制索引。