select * from PM_UserRole where UserID = 1;
select A.*, B.PermName from PM_RolePerm A
inner join PM_Permission B on A.PermCode = B.PermCode
where A.RoleID = 4;
PM_UserRole 表中 UserID = 1 的所有欄位,取得該使用者擁有的角色關係。PM_RolePerm 為主表(別名 A),內連接 PM_Permission 表(別名 B),連接條件為 PermCode 相等。篩選 RoleID = 4 的角色權限記錄,並輸出權限名稱 PermName。結合兩句,邏輯為:查詢使用者 ID=1 所屬角色(假設為 RoleID=4)對應的所有權限名稱。實際應用中通常會將兩句合併為單一查詢:
select B.PermName
from PM_UserRole UR
inner join PM_RolePerm RP on UR.RoleID = RP.RoleID
inner join PM_Permission P on RP.PermCode = P.PermCode
where UR.UserID = 1;
UserID、RoleID、PermCode 上有索引。select *,明確列出所需欄位減少網路傳輸。