我有6张表,前三个表字段结构与属性完全一样,后三个完全一样:
table_a1, table_a2, table_a3
table_b1, table_b2, table_b3table_a1.id=table_b1.id
.....
.....我要将前三个表的数据合并,并联合后三个表查询某些数据,最后也将查询的数据与前三个表的数据合并我如此做法:
for循环3次,将三个表的所有数据查询出来(偶尔需要去掉重复值,并合并其重复的数据,加减,或乘除),放入一个数组,期间也利用关联字段查询出后三个表的数据,并合并其中,也就是说,得到的数组至少是前三个表的所有数据之和然后,我需要分页,说白了,就是对数组分页,对这个二维数组分页,这个二维数组可能有上万条记录,也可能几十万条记录,或者更多我如此做法,会影响到速度吗,我的表才最多一千多个记录,没法测试除了这个方法,另一个方法就是,for循环3次,将三个表的所有数据查询(按量查询)出来(偶尔需要去掉重复值,并合并其重复的数据,加减,或乘除),放入一个数组,使这个二维数组有10个键(分页时,每页10条记录),这种方法我有点纠结,原因是:我需要在哪个环节联合查询后三个表的数据,而且查询前三个表的数据的合并数组只能满足10个键,但是这里查询有点带随机性质的。ps:上面说的三个循环,是因为有三个表,其实事实上表的个数是不确定的,有可能是4个,5个,6个或更多,有几个就会有几次循环,以合并所有表(比如有6个表,就会联合查询后6个表,事实上就是一共要查询12个表的数据)脑袋大了吧 ...

解决方案 »

  1.   

    为什么不直接在数据库里insert那几个表的union呢
      

  2.   

    我也想,可我不参与mysql的insert,而参与的人又不干,因为数据太多,又是用的存储过程写入的,那样的负载太大了,只让我查询的时候多多优化
      

  3.   

    既然是分页,我想并不需要显示出所有的数据,为什么还要显示table_bx的相应记录,为什么不能把要显示的数据都放到一个表当中,这样起码可以省却连表的麻烦