Access交流中心

北京 | 上海 | 天津 | 重庆 | 广州 | 深圳 | 珠海 | 汕头 | 佛山 | 中山 | 东莞 | 南京 | 苏州 | 无锡 | 常州 | 南通 | 扬州 | 徐州 | 杭州 | 温州 | 宁波 | 台州 | 福州 | 厦门 | 泉州 | 龙岩 | 合肥 | 芜湖 | 成都 | 遂宁 | 长沙 | 株洲 | 湘潭 | 武汉 | 南昌 | 济南 | 青岛 | 烟台 | 潍坊 | 淄博 | 济宁 | 太原 | 郑州 | 石家庄 | 保定 | 唐山 | 西安 | 大连 | 沈阳 | 长春 | 昆明 | 兰州 | 哈尔滨 | 佳木斯 | 南宁 | 桂林 | 海口 | 贵阳 | 西宁 | 乌鲁木齐 | 包头 |

关于删除查询问题!

xuchunyang  发表于:2013-01-28 11:34:15  
复制

大家好,附件中有两个表,补考和正常考试。

现在我想做删除查询,将两个表中姓名和性别完全一样的记录,在补考表中删除。

我的语句是:
delete 补考.*
from 补考 inner join 正常考试 on (补考.姓名=正常考试.姓名) and (补考.性别=正常考试.性别);

在网上查了相关的信息之后,发现这种方法在ACCESS中不支持。

那么,如果我想实现结果,应该怎么写?

谢谢大家!

点击下载此附件


 

Top
金宇 发表于:2013-01-28 16:22:21
delete 补考.*
FROM 补考 
where exists(select * from 正常考试 where 补考.姓名=正常考试.姓名 and 补考.性别=正常考试.性别);


xuchunyang 发表于:2013-01-28 18:04:20

谢谢您了,第一次见到exists,所以我会继续深入学习的。

 

但是您的子查询里,select * from 正常考试 where 补考.姓名=正常考试.姓名 and 补考.性别=正常考试.性别

我认为要是单独看这句肯定是有问题的,如果放到查询中,肯定是会弹出询问“补考.姓名”参数的对话框的,但是为什么在这里不会报错呢?



金宇 发表于:2013-01-28 21:32:04
子查询中的“where 补考.姓名=正常考试.姓名 and 补考.性别=正常考试.性别” 这句中的“补考.姓名,补考.性别”分别指的是主查询中的字段,没有主查询语句,那么“where 补考.姓名=正常考试.姓名 and 补考.性别=正常考试.性别”这句就没有意义,而且也找不到“补考”表。

xuchunyang 发表于:2013-01-30 09:44:23
多谢多谢,我会继续努力的!

殷小宝 发表于:2013-01-30 16:13:02
exists 这个函数用得好,不需用   字段 in 某范围     这里字段名不好写,因为有两个字段.

总记录:5篇  页次:1/1 9 1 :