主表里的每个ID都要从子表里取出满足条件的前十条数据,数据量比较大,sql应该怎么写啊
子表根据外键分组排序取前十,需要子表在外键和排序字段做索引
select t.* from A t where iDataId in(select top 100 iDataId from A where iPersonId=t.iPersonId order by dUseTime)
这样的sql 改成Exists 怎么写啊
Select * from Table A
Outer Apply ( select top 100 ID from TableDetails B where A.PrimaryID = B.ForeignID)
这个方法是获取指定字表的条件个数。就是每一项主键ID,匹配指定数量的字表信息,希望能给你帮助