表A
主叫 被叫
1 059122222222
2 13833333333
3 013844444444
4 55555555
5 66666666表B
区号 注释
0591 福州
....
表C
号段 注释
1383333 北京
1384444 上海
.....表D
号码 注释 用户 地址 联系人
55555555 aa dd ff f
66666666 bb dfg gsd dsd
.....
结果表AAA
主叫 被叫 注释
1 059122222222 福州
2 13833333333 北京
3 013844444444 上海
4 55555555 aa
5 66666666 bb
求: 1 得出 表AAA的语句
2 如何在 表B(几百个数据) 表C(十万左右数据,字段“号段” 都不一样的数据) 表D(一百万左右数据 字段 “号码” 有少数一样) 创建索引让得出表AAA的速度快些
感谢大虾们! 节日愉快!
主叫 被叫
1 059122222222
2 13833333333
3 013844444444
4 55555555
5 66666666表B
区号 注释
0591 福州
....
表C
号段 注释
1383333 北京
1384444 上海
.....表D
号码 注释 用户 地址 联系人
55555555 aa dd ff f
66666666 bb dfg gsd dsd
.....
结果表AAA
主叫 被叫 注释
1 059122222222 福州
2 13833333333 北京
3 013844444444 上海
4 55555555 aa
5 66666666 bb
求: 1 得出 表AAA的语句
2 如何在 表B(几百个数据) 表C(十万左右数据,字段“号段” 都不一样的数据) 表D(一百万左右数据 字段 “号码” 有少数一样) 创建索引让得出表AAA的速度快些
感谢大虾们! 节日愉快!
Union All
select 号段,注释 from C
Union All
select 号码,注释 from Dselect 主叫,被叫,注释=(select min(注释) from #t where 被叫 like '%'+区号+'%') from A drop table #t
"表B(几百个数据) 表C(十万左右数据,字段“号段” 都不一样的数据) 表D(一百万左右数据 字段 “号码” 有少数一样)"
可以不用臨時表。Select
A.*,
E.注释
From
A
Left Join
(Select 区号, 注释 From B
Union All
Select 号段, 注释 From C
Union All
Select 号码, 注释 From D
) E
On CharIndex(A.被叫, E.区号) > 0