這個需求涉及到2個表,一個表是用戶權限記錄,一個表是權限管理條目
用戶權限記錄表:
uid,fid,perm
權限條目表:
fid,name,caption
現在做權限管理頁面,需求是:
1、如果有此用戶的權限,則查詢出來,用right join可以做到
2、如果此用戶沒有設定過權限,則查詢出所有權限條目,uid,perm等列留空,也就是要聯合查詢
第一條好辦,現在的問題是第二條怎么實作?
這2條需求能在一個查詢中實作那就更好了
uj5u.com熱心網友回復:
你的用戶權限表沒設定權限,fid 是不是空的那么
SELECT A.uid,A.fid,A.perm,B.name,B.caption FROM 用戶權限記錄表 A,權限條目表 B
WHERE A.FID=B.FID -- 查出有權限的用戶對應權限
UNION ALL
SELECT A.uid,B.fid,A.perm,B.name,B.caption FROM 用戶權限記錄表 A,權限條目表 B
WHERE A.FID IS NULL -- 無權限用戶對應所有權限
uj5u.com熱心網友回復:
謝謝,我可能沒說清楚:如果此用戶沒設定過權限,那么權限記錄表中就沒有此用戶的記錄,所以用fid is null查不到資料
uj5u.com熱心網友回復:
那你還得有張用戶表,否則怎么知道哪些用戶配置過權限,哪些用戶沒有任何權限。uj5u.com熱心網友回復:
如果權限記錄表中沒有記錄就表示沒分配過權限啊
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/100593.html
標籤:應用實例
上一篇:今天遇到一個問題,向mysql資料庫添加資料保存后不顯示。但是用SQL陳述句去查詢又能找到,就是不顯示
下一篇:求python的一個程式
