标题:小白求助 两个表删除的问题
只看楼主
shankeda
Rank: 1
等 级:新手上路
帖 子:30
专家分:5
注 册:2017-7-24
结帖率:80%
已结贴  问题点数:20 回复次数:13 
小白求助 两个表删除的问题
文件夹DATA下 cp.dbf
th       sl
A        1
A        3
A        8
B        2
B        9
C        22
D        29
文件夹linshi下 temp.dbf
th
A
B
E
将TH.dbf中th与temp.dbf中th相同的删除
use linshi\temp.dbf
delete  from data\cp where temp.th==cp.th
为什么只删除cp.dbf表中a的行?
应该怎么才能实现都删除?
搜索更多相关主题的帖子: 两个表 删除 DATA dbf temp 
2017-07-24 11:25
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:323
帖 子:9621
专家分:26174
注 册:2012-2-5
得分:0 
VFP什么版本

坚守VFP最后的阵地
2017-07-24 11:37
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:323
帖 子:9621
专家分:26174
注 册:2012-2-5
得分:10 
VFP6 代码
程序代码:
create cursor cp (th c(1),sl n(4))
insert into cp values ("A",1)
insert into cp values ("A",3)
insert into cp values ("A",8)
insert into cp values ("B",2)
insert into cp values ("B",9)
insert into cp values ("C",22)
insert into cp values ("D",29)
create cursor temp (th c(1))
insert into temp values ("A")
insert into temp values ("B")
insert into temp values ("E")
select temp
scan
    delete from cp where cp.th==temp.th
endscan
select cp
browse
收到的鲜花
  • shankeda2017-07-24 13:18 送鲜花  3朵   附言:我很赞同

坚守VFP最后的阵地
2017-07-24 11:42
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:323
帖 子:9621
专家分:26174
注 册:2012-2-5
得分:0 
VFP9 代码
程序代码:
create cursor cp (th c(1),sl n(4))
insert into cp values ("A",1)
insert into cp values ("A",3)
insert into cp values ("A",8)
insert into cp values ("B",2)
insert into cp values ("B",9)
insert into cp values ("C",22)
insert into cp values ("D",29)
create cursor temp (th c(1))
insert into temp values ("A")
insert into temp values ("B")
insert into temp values ("E")
delete cp from temp where cp.th==temp.th
select cp
browse

坚守VFP最后的阵地
2017-07-24 11:44
mywisdom88
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:190
帖 子:3125
专家分:8340
注 册:2015-3-25
得分:0 
以下是引用shankeda在2017-7-24 11:25:06的发言:

文件夹DATA下 cp.dbf
th       sl
A        1
A        3
A        8
B        2
B        9
C        22
D        29
文件夹linshi下 temp.dbf
th
A
B
E
将TH.dbf中th与temp.dbf中th相同的删除
use linshi\temp.dbf
delete  from data\cp where temp.th==cp.th
为什么只删除cp.dbf表中a的行?
应该怎么才能实现都删除?

delete 好像不能同时删除多个表的,你可以用2条语句

* 先把删除条件数据放到临时表 d_tmp
use linshi\temp.dbf in 0
use data\cp.dbf in 0
select cp.th from temp,cp where temp.th==cp.th into cursor d_tmp

delete  cp from cp,d_tmp where d_tmp.th==cp.th
delete  temp from temp,d_tmp where d_tmp.th==temp.th

2017-07-24 11:50
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:323
帖 子:9621
专家分:26174
注 册:2012-2-5
得分:0 
以下是引用mywisdom88在2017-7-24 11:50:34的发言:


delete 好像不能同时删除多个表的,你可以用2条语句

* 先把删除条件数据放到临时表 d_tmp
use linshi\temp.dbf in 0
use data\cp.dbf in 0
select cp.th from temp,cp where temp.th==cp.th into cursor d_tmp

delete  cp from cp,d_tmp where d_tmp.th==cp.th
delete  temp from temp,d_tmp where d_tmp.th==temp.th

VFP6不行,但VFP9行

坚守VFP最后的阵地
2017-07-24 12:15
shankeda
Rank: 1
等 级:新手上路
帖 子:30
专家分:5
注 册:2017-7-24
得分:0 
回复 2楼 sdta
VF6.0的
2017-07-24 12:58
shankeda
Rank: 1
等 级:新手上路
帖 子:30
专家分:5
注 册:2017-7-24
得分:0 
回复 5楼 mywisdom88
可能是我没说明白,只是删除cp表里的数据,temp表也是从别处筛选处来的表,对temp表不做操作。
2017-07-24 13:07
shankeda
Rank: 1
等 级:新手上路
帖 子:30
专家分:5
注 册:2017-7-24
得分:0 
回复 3楼 sdta
谢谢大神  解决了
2017-07-24 13:18
sylknb
Rank: 4
等 级:贵宾
威 望:14
帖 子:1519
专家分:174
注 册:2006-6-3
得分:0 
delete from cp where th in(select th from temp.dbf)  ** 在cp表中作了删除标记
2017-07-25 09:58



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-479582-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.075076 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved