读书人

求多表联合查询方法解决方案

发布时间: 2012-03-28 15:40:03 作者: rapoo

求多表联合查询方法
情况是:数据库中有多张结构相同的表,就是每个月生成一张,里面的各个字段都是一样的,就是数据按时间增加。每张表的名称是相近的一时间命名的,如:table201201 这是2012年1月的表。

现在想要做个报表查询一段时间的数据,可能只涉及一张表,也可能很多张表一起查询。怎么搞??

[解决办法]
记得有个union方法来着,具体操作忘了,你也可以建一个临时表用循环把所有表的内容添加进去,对临时表进行操作
[解决办法]
建议再建一张表,保存每张业务表的表名+月份
这样查询起来会容易点。
[解决办法]
如果查询条件不太复杂的话,
可以从拆分查询入手,只在对应时间的表里面查询。
毕竟查最近的数据会相对多点。

union的缺点是数据量大,而且大部分数据可能是很少需要查询。
[解决办法]
既然是不同的表,union就是首选了
可以在查询每个表时加where条件后再union,而不是union后再加where条件
尽量优化条件,从左至右,能排除最多数据的条件放左边
[解决办法]
用UNION是首选。
[解决办法]
corn1的方法不错,把原来的当成明细按照查询或条件进行操作,不过会用union还是很强大的

读书人网 >.NET

热点推荐