专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > 其他数据库

SQL多表连查,同时查询N个表的内容,该怎么处理

发布时间:2010-05-24 21:31:33 文章来源:www.iduyao.cn 采编人员:星星草
SQL多表连查,同时查询N个表的内容
现在我数据库中每天会自动生成一张表,表的命名规范是固定字符加日期格式,如:
red_20110928,
red_20110929,
red_20110930,
red_20111001,
red_20111002,
red_20111003,
red_20111004,
red_20111005
......

现在我想根据时间段来查询表中的数据,而条件时间(regtime时间字段)段是可以随便选择的,比如:
 regtime between '2011-09-29 11:10:40' and '2011-10-03 11:10:40' 

求各位高手帮忙,急需!

------解决方案--------------------
SELECT * FROM (
SELECT * FROM red_20110928
UNION ALL
SELECT * FROM red_20110929
UNION ALL
....
SELECT * FROM red_20111005) A 
WHERE regtime between '2011-09-29 11:10:40' and '2011-10-03 11:10:40'
------解决方案--------------------
这种情况,不建议分表。

如果担心数据量过大,则应该使用分区表。


如果无法改变目前表的这种设计。 则

方法一: 每天增加一个新表的同时,把这个表加入到视图中 select * from (select * from t1 union all select * from t2 .... ) 但即使是视图中,你的SQL语句长度仍然是受限制的。总有一天,你没办法加表了。

方法二:使用MERGE存储引擎,类似于视力,但查询效率相对高一点儿。 同样会有限制。


建议还是使用分区表。
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

热门推荐: