sql 中 两张关联表,如何做到只删除一张表,另一张表不受影响 例 表a(name,number)表b(name,age)

如题所述

方法1:delete 表a from 表a A join 表b B on A.name=B.name
方法2:delete from 表a where name in(select name from 表b)
这样就可以删除表a中有表b中的Name相同的记录,而不影响表b中的内容追问

不是删除表a中有表b中的Name相同的记录,是只删除表a的所有,表b的name不受影响

追答

如果是删除表a记录,可以使用: truncate table 表a,意思是清空表a所有数据
如果是连表结构一起删除可以用:drop table 表a

追问

表a
SampleNo ReportDate Name
100001 2012-09-01 00:00:00.000 张三
100002 2012-09-03 00:00:00.000 李四
表b
SampleNo ReportDate itemname itemresult
100001 2012-09-01 00:00:00.000 WBC 3.2
100010 2012-09-02 00:00:00.000 CRE 200.1
a和b关联字段为SampleNo 和ReportDate,
写sql语句,执行后实现删除b的记录(这些记录无法关联至a

追答

delete 表a from 表a A join 表b B on A.SampleNo=B.SampleNo and A.ReportDate=B.ReportDate

温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-10-26
删除表 你就直接删除就是了,点中表 右键删除。或者 drop table
第2个回答  2012-10-26
有外键没 如果有外键先把外键解除了再删 这样就另一张表就不会受影响追问

没有外键 两表的关联字段name
删除一张表,另一张也受影响

追答

那你把关联字段的关联关系解除掉撒 就是弄成2张独立的表

追问

如何解除呀

相似回答