我想从四个表中取数据,四个表分别是A1,A2,A3,A4, 优先取的顺序是从A1到A4.
每次取的条数自己设定,比如8条,我不是循环取记录,而是客户端提交一次返回一次查询出来的记录,
每返回一次记录数设置一个变量i,起始时为0,每取一次i的值加8,比如A1表中有条记录A2表中有20条记录
我第一次取的8条记录全部由A1表中取得,第二次取的8条记录是由A1表中的2条记录和A2表中的6条记录组成
第三次取的8条记录由A2表中的取得.如果A2表中的数据不够8条时期余的数据由A3或A4表中取在线等待。。

解决方案 »

  1.   

    是不是可以这样理解你的意思:我可以把你的四个表看作是一个表,你每次只取8条记录,i等于1时取前1到8条记录,i等于2时取9到16条,i等于3时取17到24条依次类推现在你的问题是,因为有4张表,你不知道怎么样获得每次取记录时所处的位置,不知道下一次怎么开始,不知道怎么把4张表联系起来,对吗?也许你的设计本身就存在缺陷(再想想看)
      

  2.   

    你既然分为四张表,那就代表这四张表的结构未必都是一样的!
    还有你的表的数据是不是随时都发生变化的?一个思路是:可以cache来实现,一条记录对应一个数组,然后把数据放入map中,这样你只要记得所取的次数i就可以了
      

  3.   

    to tomuno(tomuno) 
    -------------------
    你的方法我也想到了,
    之所以要分开来取就是因为数据量非常大,全部放到一个数组中运算效率太低。-----------------------------------
    to Weilibo(水火交融) 
    -----------------------------------
    意思是这样的,我的问题是想得到每次得到的8条记录是由几个表中得来的,每个表提供几条记录,位置由第几条到第几条
    不知道我说的你理解没有
      

  4.   

    to tomuno(tomuno)
    ---------------------------
    也不全是,四个表的结构是不同的,但是有关联
      

  5.   

    联合查询
    JOIN
    但不支持mysql和oracle8i
      

  6.   

    你可以用SQL 语句读取部分数据,如:select top 8 * from tablename;
    //取前8条数据!如果取中间的部分数据,可以用嵌套的SELECT语句进行选择!!
    //不过不同的数据库,可能对TOP语句的支持不一样!!
      

  7.   

    如果是MYSQL数据库的话则更方便,用LIMIT语句来取!