多表合并,大虾们帮忙。节日愉快!
表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的速度快些
感谢大虾们! 节日愉快!
[解决办法]
select 区号,注释 into #t from B
Union All
select 号段,注释 from C
Union All
select 号码,注释 from D
select 主叫,被叫,注释=(select min(注释) from #t where 被叫 like '% '+区号+ '% ') from A
drop table #t
[解决办法]
第一个问题抢答了,第二个问题看不明白!
[解决办法]
求: 1 得出 表AAA的语句
---------
可以不用臨時表。
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
[解决办法]
個人認為椄主表A設計得不合理
應該把手機號、座機號、其他號(如55555555)分類存儲