设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 5737|回复: 11
打印 上一主题 下一主题

[查询] 请教sql语句,错哪了?

[复制链接]
1#
发表于 2010-12-31 09:47:00 | 显示全部楼层
roych 发表于 2010-12-31 01:49
应该改为子查询:
两个月之前我也遇到过这个问题,在这里提问居然没人回答~~汗,后来还是自己摸索出来的~~ ...

没那么复杂吧?这样应该就可以了:
DELETE *
FROM 表1
WHERE dlookup("选择","表2","编号=" & [编号])=-1;
2#
发表于 2010-12-31 10:07:17 | 显示全部楼层
roych 发表于 2010-12-31 09:58
HoHo,之前没想过用函数可以轻易解决,固守在字段之间。学习了……
向版主致敬!

用in查询速度会很慢,特别是表2记录条数多的时候。
3#
发表于 2010-12-31 10:16:05 | 显示全部楼层
本帖最后由 todaynew 于 2010-12-31 10:18 编辑
sxgaobo 发表于 2010-12-30 20:30
DELETE 表.*, 表2.选择
FROM 表1 INNER JOIN 表2 ON 表1.编号 = 表2.编号
WHERE (((表2.选择)=-1));


诚如ZYP同志所论,DELETE不能针对两个及以上的表进行,因此可以这样写:
DELETE 表1.*
FROM 表2 INNER JOIN 表1 ON 表2.编号=表1.编号
WHERE (((表2.选择)=-1));

三种写法以7楼效率最好,4楼次之,3楼最差。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-5-18 22:32 , Processed in 0.084825 second(s), 26 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表