一个复杂的查询!!

[复制链接]
查看11 | 回复5 | 2008-8-13 12:38:41 | 显示全部楼层 |阅读模式
数据结构如下:
表a:
手机号
13112341234
13012341232
...............
表b:
起始号终止号地区名称
1301234
1301235
成都
1311234 1311235 绵阳
...............
起始号表示手机的前面7位
终止号表示手机的前面7位

现在我想通过这两张表的到下面的效果
手机号 地区名称
13112341234
成都
13012341232
绵阳
请问这个SQL语句这怎么写???????????
回复

使用道具 举报

千问 | 2008-8-13 12:38:41 | 显示全部楼层
selecta.mobbile_no,b.areafroma,b
wherea.mobbile_no >=b.begin_no anda.mobbile_no = b.begin_no and a.mobbile_no <= b.end_no;
这样查询,a4000 rows ,b20000 rows ,5秒之内没出结果是严重问题
假如两个表都在内存中,控制在2秒内甚至1秒内完全是正常的
回复

使用道具 举报

千问 | 2008-8-13 12:38:41 | 显示全部楼层
我检查一下数据库再看看!!谢谢了!
回复

使用道具 举报

千问 | 2008-8-13 12:38:41 | 显示全部楼层
你哪个方法没有把重复记录去掉!!!当加上DISTINCT后速度就慢,没加就快!
回复

使用道具 举报

千问 | 2008-8-13 12:38:41 | 显示全部楼层
我放到SQL SERVER 2000里执行了2分钟都还没有出来
回复

使用道具 举报

千问 | 2008-8-13 12:38:41 | 显示全部楼层
1:如果有重复记录,那该是你自己处理的问题
2:如果你是 mssql 请换个地方提问
2分钟?
我处理100万记录对100万记录的表连接也只有2分钟!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行