日期:2014-05-16  浏览次数:20899 次

请教关于delete的问题
有一个表test如下,其中pid为父id,pp为路径
id na pid pp
1 总类别 0 ,0,
107 部门1 1 ,0,1
49 部门2 1 ,0,1,
55 小叶 107 ,0,1,107,
54 小林 107 ,0,1,107,
53 小汪 49 ,0,1,49,
52 小刘 49 ,0,1,49,
现在假设已知部门2的id为49,想要对部门2的所有员工进行操作,这里即小汪和小刘

select   *   from   test   as   b,   (select   pp   from   test   where   id=49)as   a       where   b.pp   like   a.pp& "49,% "   可以运行

update     test   as   b,   (select   pp   from   test   where   id=49)as   a   set   na= 'new   name '     where   b.pp   like   a.pp& "49,% "
也可以运行
但为什么当要删除这些记录时,比如
delete   from   test   as   b,   (select   pp   from   test   where   id=49)as   a       where   b.pp   like   a.pp& "49,% "                 就提示: "指定删除记录的表 "  
望达人给于指点,不胜感激了


------解决方案--------------------
JET -SQL对DELTELE、UPDATE支持不是很好,你用SELECT生成一新表不就行了
------解决方案--------------------
改为如下格式试试:

delete *
from 表A
where id in (select id from 表B)