Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我有一个具有以下架构的表:
CREATE TABLE table ( msg_id TEXT, thread_id TEXT, . . . date INTEGER )
我需要检索最近的n msg_id每个唯一值thread_id。有没有办法使用单个查询来做到这一点,或者我需要查询数据库以获得最新的不同thread_ids,然后再次查询数据库 PER 唯一thread_id?我记得在某处读过多个数据库查询可能会变得昂贵。
msg_id
thread_id
thread_ids
您可以使用相关子查询。例如,对于N = 5:
N = 5
select * from YourTable yt1 where 5 < ( select count(*) from YourTable yt2 where yt2.thread_id = yt1.thread_id and yt2.msg_id < yt1.thread_id )
这不是太快,因此您可能最好使用多个查询。