有个商品表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语句怎么写?
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哥来 修改一下