日期:2014-05-18  浏览次数:20601 次

跪求sql高手。急急急!
ABC三张表各有100万数据,根据条件查询出来数据,这数据可以放在第四张表中。!后台用说明方法怎么查询,前台有说明方法怎么显示效率在1秒之内。请高人指点思路不要代码。

------解决方案--------------------
后台查询三张表,无非就是根据关联字段进行关联查询,关联字段或者where后面的字段需要合理设置索引。
前台显示,是要全部都显示出来?那如果三张表cross join或者full join,那么多数据显示出来毫无意思啊,一般都是分页显示。
------解决方案--------------------
接着解决你的后台怎么查询问题:Insert FourTable(a,b,c,d,e) select a,b,c,d,e from onetable,twotable,threetable where .....

楼上都不看清你的问题,应该不是SQL语句查询一秒钟内返回300万条数据,否则取决于你的数据库服务器,假如不是本机操作,还取决于往返带宽,客户端性能。
------解决方案--------------------
用游标你死定了。
首先,要根据业务来定,如果你的3个表都是不会变动的,那么就应该早计算出来,存放到第四个表。直接供查询。不过这个机会比较少,但是你还是可以回答一下。
第二,一般来说表是会变动的,那么你要考虑的第一个是关联算法:hash、合并、Nested loop各有其用武之地。第二个考虑的是索引。第三个考虑的是where中能否快速减少数据量并利用索引。第四个是select中是否有很复杂的计算。
最后,如果都不行,那么建议你虚心问一下考官,学习才是重点。并且表现出你好学,好问。问了之后也希望你来这里分享一下