有个商品表p和分类表c。
其中商品表p结构如下:
pid cid pname
1 1 电脑分类表c结构如下:
cid cName
1 电子产品p表的cid外键关联c表的主键cid。现在想查询商品表p的第page页ncount条一页数据,得到数据如下:
pid cid cName pname
1 1 电子产品 电脑高效的sql语句怎么写?
其中商品表p结构如下:
pid cid pname
1 1 电脑分类表c结构如下:
cid cName
1 电子产品p表的cid外键关联c表的主键cid。现在想查询商品表p的第page页ncount条一页数据,得到数据如下:
pid cid cName pname
1 1 电子产品 电脑高效的sql语句怎么写?
解决方案 »
- oracle 建表时,出现oracle建表时,出现SP2-0042:未知命令“>”-其余行忽略,求解?
- RMAN 不完整恢复 单个数据库文件 报错~~求回答
- cmd中怎样以管理员身份登陆oracle数据库
- 这样的语句怎么写
- 求句sql,大家帮帮忙
- 这个加号该不该加?
- DEVELOP 2000 连接错误, 指教!!
- oracle9i imp-00003,imp-00017..问题求解!请高手指点!
- 敬请各位大虾 急救!! 在windows xp下安装oracle9i到99%系统配置时通不过怎么办??
- Oracle 自增长ID 越来越大,想重新从1开始排列 该怎么做?
- occi 连接池中连接失效
- 用with 优化复杂SQL,开始时成果显著,然后却开销增加巨大
SELECT TEST1.*,TEST2.cName,ROWNUM AS RN FROM TEST1 LEFT JOIN TEST2 ON TEST1.CID = TEST2.CID WHERE ROWNUM <= 第page页 * ncount条) WHERE RN >= (第page页-1)*ncount条 +1是这个吗
能不能在外层left join?先查分页的数据出来后再级联效率不是更高吗?
(
SELECT A.*, ROWNUM RN
FROM (SELECT pid,p.cid,pname,cname FROM p,c where p.cid=c.cid) A
WHERE ROWNUM <= page*ncount
)
WHERE RN > (page-1)*ncount可以看看这个http://blog.csdn.net/fw0124/article/details/6692022
SELECT TEST1.*,TEST2.cName,ROWNUM AS RN FROM TEST1 ,TEST2 WHERE TEST1.CID = TEST2.CID
) WHERE RN BETWEEN 第page页 * ncount条+1 AND 第page页 * ncount条+20哥来 修改一下