有个商品表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语句怎么写?

解决方案 »

  1.   

    SELECT pid,cid,pname,cName FROM (
    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是这个吗
      

  2.   


    能不能在外层left join?先查分页的数据出来后再级联效率不是更高吗?
      

  3.   

    SELECT /*+ FIRST_ROWS */ * FROM 
    (
    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
      

  4.   

    SELECT * FROM (
    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哥来 修改一下