|
本帖最后由 roych 于 2011-4-25 15:13 编辑
现在俺是采用了子查询来删除:
1、DELETE t_SysUserLogon.*
FROM t_SysUserLogon
WHERE Name Not In (select Name from tbl_E_Personal);
2、之前老汉斑竹说,应该用Dlookup来做,我稍稍改了下,用Dcount来做
DELETE t_SysUserLogon.*
FROM t_SysUserLogon
WHERE DCount("name","tbl_e_personal","name='" & [name] & "'")=0;
经测试对比:
第一种方法运行了46'90;第二种方法运行到1:30'时,俺实在没耐性了,便关掉了已经没反应的数据库。想来第二种方法应该是逐行对比,运行了27000*714次所致的吧。
本想用右联接来做,但无法执行(见下面代码),看看大家有没有其它更好的办法?
DELETE t_SysUserLogon.*
FROM tbl_E_Personal RIGHT JOIN t_SysUserLogon ON tbl_E_Personal.Name = t_SysUserLogon.Name
WHERE tbl_E_Personal.Name Is Null
|
|