高效的SQLSERVER多表查询分页

本文详细解析了复杂SQL查询中的多表关联与单表查询技巧,包括使用LEFT OUTER JOIN进行数据关联,以及如何利用TOP和ROW_NUMBER()进行结果排序与限制。通过具体案例,展示了如何在大量数据中高效检索所需信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

多表关联查询

select w2.n,w1.* from (
    select fpr.flag AS reportflag,fpr.id AS reportid,fpr.userid,fpl.* from ndb_fp_report fpr left outer join ndb_fp_log fpl on fpl.id=fpr.fpid 
) w1,(
    select top  20 row_number() OVER(order by  g.id desc) n,g.id from ndb_fp_report t left outer join ndb_fp_log g on g.id = t.fpid where  1=1  and starttime between '2019-04-27 00:00:00' and '2019-04-28 23:59:59'  
) w2 
where w1.id=w2.id and w2.n > 0 order by w2.n asc

单表查询

SELECT w2.n,w1* FROM v_account w1,(SELECT TOP 50 row_number() OVER (ORDER BY Id DESC) n, Id FROM v_account) w2 WHERE w1.Id = w2.Id AND w2.n > 0 ORDER BY w2.n ASC

参考:https://blog.youkuaiyun.com/qiaqia609/article/details/41445233

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值