请VFP高手帮我!

xxx2003 2003-07-28 08:27:04
尊敬的VFP高"
我有两个结构一样的表TABLE1和TABLE2,(TABLE2是TABLE1的真子集),
问题由来:如何求出TABLE1比TABLE2多出的那部分记录TABLE3(即求两集合的差:TABLE1-BATLE1).
当然要求出TABLE3这个问题大伙应该都能做,例如:常见的方法是用程序方式把TABLE1的记录逐条与TABLE2所有记录比较,若找不到,就添加到TABLE3,但这样效率太低,所等待的时间实在不能忍受,如何才能高效求出这个结果来呢?
请您帮帮我吧!
...全文
41 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
newfang 2003-07-29
  • 打赏
  • 举报
回复
给你个笨办法,做个循环,一条一条的判断处理。
szjhxu 2003-07-29
  • 打赏
  • 举报
回复
忘了加输出去向了,

select table1.字段1,table1.字段2,... form table1 left outer join table2 on table1.关键字段=table2.关键字段 where table1.关键字段!=table2.关键字段 into table table3

szjhxu 2003-07-29
  • 打赏
  • 举报
回复
select table1.字段1,table1.字段2,... form table1 left outer join table2 on table1.关键字段=table2.关键字段 where table1.关键字段!=table2.关键字段
daniel2008 2003-07-29
  • 打赏
  • 举报
回复
高手在上面都已经说了.呵
seegood 2003-07-29
  • 打赏
  • 举报
回复
select * from table1 where not 关健字段 in (select 关键字段 from table2);
into table table3

假设重复的字段为Name,Address
select identity(int,1,1) as autoID, * into #Tmp from table3
select min(autoID) as autoID into #Tmp2 from #Tmp group by Name,autoID
select * from #Tmp where autoID in(select autoID from #tmp2)
最后一个select即得到了Name,Address不重复的结果集(但多了一个autoID字段,实际写时可以写在select子句中省去此列)
流星尔 2003-07-28
  • 打赏
  • 举报
回复
其实不准确,如果存在重复记录的话,就没有出来。
流星尔 2003-07-28
  • 打赏
  • 举报
回复
其实不准确,如果存在重复记录的话,就没有出来。
fj_jiangqi 2003-07-28
  • 打赏
  • 举报
回复
要有个关键字段进行索引
用索引来判断是否存在就会很快。
或用
select * from table1 where not 关健字段 in (select 关键字段 from table2) into table table3
into背后可能写错了,vfp中的sql不太熟悉
供参考
-------------------------
我流落在凄凉的世界里-孤苦伶仃
我过着动荡无助的生活-四处漂泊

2,749

社区成员

发帖
与我相关
我的任务
社区描述
VFP,是Microsoft公司推出的数据库开发软件,用它来开发数据库,既简单又方便。
社区管理员
  • VFP社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧