--这个只要才用多表关联就是了,你要注意如果各个表中有标识已停用或使用等标识你自己把条件添加进去,下面语句查询的数据是用户收有权限,包含被停用的数据
select distinct a.*
from 权限表 a
inner join 角色表 b on a.角色ID=b.角色ID
inner join 用户组和角色的中间表 c on c.角色ID=b.角色ID
inner join 用户组表 d on c.用户组ID=d.用户组ID
inner join 用户和组的中间表 e on d.用户组ID=e.用户组ID
inner join 用户表 f on f.用户ID=e.用户ID
where f.用户ID=需要查询的用户ID
加入distinct就是排除重复行,就是可能会出现一个用户有多个用户组,多个角色,就出现了
一个权限在一个用户多条,所以显示的时候只要显示一条。