请教:表a包含表b,如何将表a中的表b的记录删除?

adyyadyy 2009-02-18 03:15:30
请教:表a包含表b,如何将表a中的表b的记录删除?
...全文
173 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
ACMAIN_CHM 2009-02-18
  • 打赏
  • 举报
回复
delete from hck2 
where exists (select * from aaa where 父编码=hck2.父编码 and 新号=hck2.新号 and 旧号=hck2.旧号 and 名称=hck2.名称 and 数量=hck2.数量 and 备注=hck2.备注)
十豆三 2009-02-18
  • 打赏
  • 举报
回复
DELETE from hck2 where 父编码+新号+旧号+名称+Str(数量)+备注 in ( select 父编码+新号+旧号+名称+Str(数量)+备注 from aaa)

改成同一类型后再相加做条件。
adyyadyy 2009-02-18
  • 打赏
  • 举报
回复
还是提示"函数名缺少)"
ACMAIN_CHM 2009-02-18
  • 打赏
  • 举报
回复
改成 select *
adyyadyy 2009-02-18
  • 打赏
  • 举报
回复
delete from hck2
where exists (select 1 from aaa where 父编码=hck2.父编码,新号=hck2.新号,旧号=hck2.旧号,名称=hck2.名称,数量=hck2.数量,备注=hck2.备注)
...Select 1...是什么意思,运行不了,提示"函数名缺少)"

ACMAIN_CHM 2009-02-18
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 adyyadyy 的回复:]
其实是一个表,表b是从表a中提取的
[/Quote]

delete from hck2
where exists (select 1 from aaa where 父编码=hck2.父编码,新号=hck2.新号,旧号=hck2.旧号,名称=hck2.名称,数量=hck2.数量,备注=hck2.备注)

不过总觉得不至于连 备注 也要一样吧。
WWWWA 2009-02-18
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 WWWWA 的回复:]
贴记录及正确结果贴出来看看,是否有相同的KEY字段
[/Quote]
已经说过
adyyadyy 2009-02-18
  • 打赏
  • 举报
回复
其实是一个表,表b是从表a中提取的
adyyadyy 2009-02-18
  • 打赏
  • 举报
回复
它们的字段是一样的
adyyadyy 2009-02-18
  • 打赏
  • 举报
回复
用一个条件来判断记录是否相同不够,或有没有其它的命令,表a包含表b
WWWWA 2009-02-18
  • 打赏
  • 举报
回复
VFP的SQL语句不支持这种格式
ACMAIN_CHM 2009-02-18
  • 打赏
  • 举报
回复
IN () 后面只能是一列。你这是多列了,MS的产品一般不支持,ORACLE倒是支持的。
如果有单一主键的话,比如 '新号',
DELETE from hck2 where 新号 in ( select 新号 from aaa)
adyyadyy 2009-02-18
  • 打赏
  • 举报
回复
DELETE from hck2 where (父编码,新号,旧号,名称,数量,备注) in ( select 父编码,新号,旧号,名称,数量,备注 from aaa)
这句哪里不对啊?
WWWWA 2009-02-18
  • 打赏
  • 举报
回复
贴记录及正确结果贴出来看看,是否有相同的KEY字段

2,726

社区成员

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

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