棘手的问题!!!!!!!!
表A有4千万以上记录
表结构是
id 代码 时间
2 100 2006-06-06
2 1001 2005-05-05
2 99 2006-01-01
3 100 2006-05-08
4 987 2003-02-06
4 9005 2005-06-08
5 505 2005-02-06
5 100 2006-06-06
5 45 2005-07-07
等等的很多数据。
表B是代码表,
主建 代码 有效时间开始 有效时间终止
1 1020 2006-07-08 2006-08-09
2 101 2005-02-05 2006-04-06
4 989 2006-12-01 2007-01-01
5 130 2006-08-08 2006-09-06
6 9227 2003-02-06 2006-06-06
7 95 2005-06-08 2006-06-06
8 55 2005-02-06 2006-06-06
9 100 2006-06-06 2006-08-06
10 455 2005-07-07 2006-06-06
等等的很多数据
现在要做的就是拿表A中ID是一样的集合数据(一条或者多条)与表B进行匹配。
配的过程(1)代码匹配。(2)如果代码匹配,还要看时间是否在表B对应的时间段内。
这样的操作。表A中大概有4千W数据。表B大概是2W数据,怎么进行匹配啊?
------解决方案--------------------楼一的好象不是吧那ID呢
------解决方案--------------------纯属蹭分
------解决方案-------------------- select * from a,b
where a.id=b.id and a.dm=b.dm and a.sj> =b.kssj and a.sj <=b.jssj
应该不是这样的要求!?
------解决方案--------------------这样的速度太慢了!
------解决方案--------------------好像是要先提取重复ID的记录,然后在到表2中匹配,是这个意思吧?
------解决方案--------------------算了。。我也顶顶
------解决方案--------------------没明白楼主的意思
------解决方案--------------------先顶吧
描述的不能明白
------解决方案--------------------select a.* from a,b
where a.id=b.id and a.dm=b.dm and a.sj> =b.kssj and a.sj <=b.jssj
and a.id in (A表中重复的ID数据集)
------解决方案--------------------