标题: 删除查询设计 [打印本页] 作者: ycxchen 时间: 2008-12-24 16:55 标题: 删除查询设计 在例子中,我想将点灯期满天数大于90天的记录通过查询删除,但查询运行不了,请各位指教。
[attach]34012[/attach]作者: Henry D. Sy 时间: 2008-12-24 17:04
DELETE *
FROM 点灯表
WHERE (((DateDiff("d",[起点日期],Date()))>=90));作者: ycxchen 时间: 2008-12-24 17:08
谢放!但达不到我的目的,我的意思:通过在查询中设定的条件,能将点灯表及游客的相关记录能一并删除作者: ycxchen 时间: 2008-12-24 17:49
感谢6D版主的指教!我再举个例子说明一下:在“点灯表”中,张三伍的点灯期满天数大于90天,删除时能将他的点灯记录删除,且能将他在“游客表”中的“姓名”、“地址”、“手机号码”等数据(即全部相关记录)一并删除。请问,如何设计查询?作者: Henry D. Sy 时间: 2008-12-24 20:10
设计两个删除查询。作者: ycxchen 时间: 2008-12-25 01:18
谢谢指点!用两个删除查询我已考虑过,用一个行不行?作者: Henry D. Sy 时间: 2008-12-25 08:12
同时删掉两个表,我没试过。作者: ycxchen 时间: 2008-12-25 08:43
谢谢!好的,我试用两个查询。作者: Henry D. Sy 时间: 2008-12-25 08:48
原帖由 ycxchen 于 2008-12-25 08:43 发表
谢谢!好的,我试用两个查询。
其实,一般数据库设计完成,表和查询都不面对用户的,面对用户的是窗体,那你将两个查询放在一个按钮事件下,没有什么一个两个之分吧。作者: Henry D. Sy 时间: 2008-12-25 09:11
当然,也可以利用表之间的关系,设定实施参照完整性,级联删除。
这样,当删除主表记录时,相关表记录也会一并删除。作者: opokimm 时间: 2008-12-25 09:13 标题: 人过留名,雁过留声。 人过留名,雁过留声。
看帖回帖,占位顶贴
作者: ycxchen 时间: 2008-12-25 09:33
十分感谢6D!利用表之间的关系,设定实施参照完整性,级联删除办法是完全可以的,但我的查询所设定的条件的字段不是主表,所以,我还是用两个查询来实现。作者: Henry D. Sy 时间: 2008-12-25 09:37
1。 两个查询可以解决
2。 但我的查询所设定的条件的字段不是主表
条件可以用子查询查阅子表的外键。
不过反而没有方法1方便。作者: ycxchen 时间: 2008-12-25 11:21
6D说得有道理,谢谢!作者: ycxchen 时间: 2008-12-25 11:40
其实,我觉得在删除查询设计中,只要选用一个或两个字段,后在此选用的字段设定条件即可,运行查询后所有字段的记录便会全部删除,没有必要在设计时选用表中所有字段吧?所以,我觉得2楼的代码可以改成如下:
DELETE 点灯表.起点日期, 点灯表.期满日期, DateDiff("d",[期满日期],Date()) AS 期满天数:
FROM 点灯表
WHERE (((DateDiff("d",[期满日期],Date()))>90));
高明的6D版主,你认为呢?作者: Henry D. Sy 时间: 2008-12-25 12:08
delete from 表 where 条件,即可。
DELETE 点灯表.起点日期, 点灯表.期满日期, DateDiff("d",[期满日期],Date()) AS 期满天数:
FROM 点灯表