请教一个SQL语句的问题

rock_turf 发布于 2013/05/03 09:10
阅读 306
收藏 2

我现在在做网页报表,现在面临一个分页问题,如果是一个表可以用

select top "+pageSize+" * from TABLE where TABLE.id not in(select top " + pageSize*(pageNow-1+"id from TABLE)

但是如果是两个表 Table_A ,Table_B 这个语句怎么设定?这两个表都是id字段为主键,二者id同步

 

加载中
0
1
106989683

有两种方式:1.建立一个视图View,视图里面添加你想要的那两张表A、B。

然后top pagesize from view

2.直接 top pagesize from (select A.字段,B.字段 from A left join on A.字段=B.字段)c

0
amonxu
amonxu
两个表字段一样吗?
0
StormFour
StormFour
sql server数据库不太了解,不过从你的语句来看非常得不主流,数据量大了查询性能一定非常差
0
五行缺钱的程序员
五行缺钱的程序员
SELECT A.ID,A.XX,B.ID,B.XX FROM TABLE_A A LEFT JOIN TABLE_B B ON B.ID = A.ID WHERE EXISTS(要查询主表第 N 到 M 条的 ID)     如果是主和明细表应该可以这样 
0
王瑞平
王瑞平

建立一个多表联查视图,设置主键

分页应该和单表应用一样的

至于这种复杂查询,建议用数据库分页,直接写DetachedCretiria


0
goofus
goofus

多表查询出结果后,在外层查结果集 作分页的事,

select  * from (select * from table a ,table b where a.id=b.id) where page < x and page > y

0
LucEsape
LucEsape
SELECT TOP pageSize A.* FROM A
WHERE A.id NOT IN(SELECT TOP pageSize*(pageNow-1) B.id FROM B)
0
rock_turf
rock_turf

引用来自“gosu”的答案

两个表字段一样吗?
当然不一样了....
0
张jason
张jason
select * from (select ROW_NUMBER() OVER (ORDER BY e.CreateTime DESC) AS RowNumber,* from Table1 e left join Table2 s on e.id=s.id ) a
        where RowNumber between 10 and 20

返回顶部
顶部