多对多(权限abrc)
表结构
1. 用户表 user
2. 用户&角色-中间表 user_role
3. 角色表 role
4. 角色&权限-中间表 role_power
5. 权限表 power
数据库查询**
使用内join查询(5连表)
- user左连
- user_role连
- role连
- role_power连
- power
select `user`.id as user_id, `user`.username as 用户名, `role`.name as 角色, `power`.name as 权限
from `user`
left join (`user_role`
inner join (`role`
inner join (`role_power`
inner join `power` on `role_power`.power_id = `power`.id)
on `role`.id = `role_power`.role_id) on `role`.id = `role_power`.role_id
) on `user`.id = `user_role`.role_id
where `user`.id = 1
正常连接(5连)!!!!!!推荐!!!!!!!!!!!!!
EXPLAIN select `user`.id as user_id, `user`.username as 用户名, `role`.name as 角色, `power`.name as 权限
from `user`
join `user_role`
on `user`.id = `user_role`.user_id
join `role`
on `user_role`.role_id = `role`.id
join `role_power`
on `role`.id = `role_power`.role_id
join `power`
on `power`.id = `role_power`.power_id
where `user`.id = 1