update base_user_roles t set t.roleid))   =
(select roleid from base_role where
  description  =(select organisename from rs_organise where id =
  (select companyid from base_user where userid = t.userid)) and rolename =(select rolename from base_role where  roleid=t.roleid))  
where  t.roleid in (select roleid from base_role where type=2)我现在想更新一下表中的内容,但更新表里面的值又得靠自己去查另外一张表求得其ID!!这样更新总是出错,请指点!!--------------
PS描述:我现在想更新其人员权限表,比如说,以前只有一个“人事管理员”角色,所以人员都挂在这个角色下面,但现在每个单位都存在一个“人事管理员”的角色,要根据其USERID求得组织机构后,再根据角色表里求得其现在的角色ID来更新!!这样就出现一个问题!!

解决方案 »

  1.   

    update base_user_roles t set (t.roleid,t.rolename)=((select roleid,rolename from
    base_role where description=(select organisename from rs_organise where id =
    select companyid from base_user where userid=t.userid)) where exists(select 1 from
    base_role where roleid=t.roleid) )where t.roleid in (select roleid from base_role where type=2)
    看看这样写可以不?我也是根据搂住的意思改了下