娜奥米 沃茨脱了:关于 asp 一个比较棘手的问题

来源:百度文库 编辑:查人人中国名人网 时间:2024/04/30 18:58:54
表的字段

ID 用户ID 机构代码 浏览权限 下载权限
1 5 10101 1 1
2 5 10102 1 1
3 5 10103 1 1
4 5 10104 1 1
5 5 10105 1 1
6 6 10101 1 1
7 6 10102 1 1
问题是:用户 5可以对用户6进行机构授权,在授权的页面,我怎么才能方便快捷显示用户5拥有但是用户6没有权限的机构 10103 10104 10105 ,当然有个苯的方式就是可以先查出用户5所有的全部机构权限,假如是 rs1,然后在查出用户6的全部机构权限,假如是 rs2
然后用
do while not rs1.eof
ls=1
if not rs2.eof
ls=1
rs2.movefrist
do while not rs2.eof
if rs1(机构代码)=rs2(机构代码) then
ls=0
end if
rs2.movenext
loop
end if
if ls=1 then
response.write rs1(机构代码)
end if
rs1.movenext
loop
这个苯的方法倒是可以实现,但是如果 用户5拥有上千个机构权限,用户6同样已经拥有上千个机构权限,这样的话,这个方法就几乎不行了!
有没有好的方法!请指教!

SELECT * FROM [表名] WHERE (机构代码 NOT IN (SELECT 机构代码 FROM [表名] WHERE 用户ID = '6')) AND 用户ID = '5'

用上面 sql 语句可以列出 6 用户所没有 5 用户的机构代码
呵呵,这样子就行了!

楼上好像掉了个条件吧?
SELECT * FROM [表名] WHERE 用户ID = '5' AND (机构代码 NOT IN (SELECT 机构代码 FROM [表名] WHERE 用户ID = '6'))