Office中国论坛/Access中国论坛

标题: 如何删除子表中没有记录的主表记录! [打印本页]

作者: cyber-bobo    时间: 2006-10-12 09:51
标题: 如何删除子表中没有记录的主表记录!
要求sql语句。
作者: laiguiyou    时间: 2006-10-12 18:36
我也想知道
作者: wwwwa    时间: 2006-10-12 18:45
try:

select * into newtable from tt a left join tt1 b on a.id=b.id where isnull(a.id)
作者: wuaza    时间: 2006-10-12 19:01
直接用delete也可以。

delete * from a left join b on a.id=b.id where a.id is null
作者: cyber-bobo    时间: 2006-10-12 21:58
标题: 不行!
请帮忙看一下:

[attach]20846[/attach]

作者: txdsdn    时间: 2006-10-12 22:03
hgfhfghgf
作者: wwwwa    时间: 2006-10-12 22:24
1、JET 引擎对DELETE、UPDATE支持不好;

2、TRY:

DELETE DISTINCTROW 表1.*
FROM 表1 LEFT JOIN 表2 ON 表1.表1ID = 表2.表1ID
WHERE (((表2.表1ID) Is Null));

作者: wwwwa    时间: 2006-10-12 22:27
3、最好用我的代码生成新表,再覆盖旧表。
作者: wuaza    时间: 2006-10-12 22:41
删除查询用了连接确实不行。那就这样吧。

DELETE * FROM 表1 WHERE 表1ID not in (select 表1ID from 表2);
作者: wwwwa    时间: 2006-10-12 22:51
以下是引用wuaza在2006-10-12 14:41:00的发言:


删除查询用了连接确实不行。那就这样吧。

DELETE * FROM 表1 WHERE 表1ID not in (select 表1ID from 表2);

 用IN效率低,用左、右连接高一些。
作者: wuaza    时间: 2006-10-13 22:47
为什么用left join连接删除不了?这里面隐藏了一个知识点。请看:http://www.access911.net/fixhtm/72FABE1E10DCE7F3.htm?tt=

[此贴子已经被作者于2006-10-13 14:47:34编辑过]






欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3