OPPPPOP 2009-08-10 18:32
浏览 264
已采纳

关于一段SQL权限查询

最近用JDBC+Oracle做一个权限部分 其中存节点的表function 字段有 ID,PID,TEXT,URL,TYPE
pid 就是此节点的父ID text为其名称, type分为sys和org 问题就出在这个org上了 org表示这个节点是
一个机构 不同于sys的是org对于其父org只能看到text不能有url 其他都一样 因为本人实在新手 对于SQL语句掌握甚少,
这样的查询实在没有思路,于是就做了个程序来控制 具体思路就是 查询某用户的所有权限并查询该用户的下属机构,然后用循环比较下属机构与其所有权限,将其中type为org为其上级org的进行setUrl("")处理,
以下是部分代码
[code="java"]
UserDao udao=new UserDao();
Collection funs=udao.getFuns(rid);
ArrayList orgs=(ArrayList) udao.queryOrg(oid);
if (rid!=1) {
for (Function f : funs) {
if (f.getType().equals("org")) {
boolean clo = false;
for (int org : orgs) {
if (org ==f.getId()) {
clo=true;
break;
}
}
if(!clo)f.setUrl("");
}
}
}
[/code]
这样感觉是多于
我想应该 如果用SQl直接查询出来结果才符合常理,但不知道怎么写,希望大家能给出能直接查询出来的结果的sql

  • 写回答

1条回答 默认 最新

  • fan0000 2009-08-12 17:06
    关注

    一条查询语句是搞不定的。有两个方法:在程序中逻辑控制、使用数据库的存储过程。

    http://www.iteye.com/problems/22151详细回答。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 网络科学导论,网络控制
  • ¥15 metadata提取的PDF元数据,如何转换为一个Excel
  • ¥15 关于arduino编程toCharArray()函数的使用
  • ¥100 vc++混合CEF采用CLR方式编译报错
  • ¥15 coze 的插件输入飞书多维表格 app_token 后一直显示错误,如何解决?
  • ¥15 vite+vue3+plyr播放本地public文件夹下视频无法加载
  • ¥15 c#逐行读取txt文本,但是每一行里面数据之间空格数量不同
  • ¥50 如何openEuler 22.03上安装配置drbd
  • ¥20 ING91680C BLE5.3 芯片怎么实现串口收发数据
  • ¥15 无线连接树莓派,无法执行update,如何解决?(相关搜索:软件下载)