【发布时间】:2019-11-19 14:16:43
【问题描述】:
我有以下五个表,用于管理数据库中用户、组和角色之间的关系:
- 用户
- 用户组
- 群
- group_role
- 角色
一个用户属于一个组。此数据存储在 user_group 表中,该表只有两列:user_fk 和 group_fk。 一个组可以包含许多角色。此信息存储在表 group_role 中,该表只有两列:group_fk 和 role_fk。
所以我对这 5 个表编写了以下查询,连接结果为我自己提供了例如 5 行,因为我所属的组包含 5 个角色。
SELECT
user.last_name,
user.first_name,
user.user_name,
group.name,
role.name
FROM
user
INNER JOIN user_group ON user_group.user_fk = user.id
INNER JOIN group ON group.id = user_group.group_fk
INNER JOIN group_role ON group.id = group_role.group_fk
INNER JOIN role ON group_role.role_fk = role.id
有没有办法将查询更改为例如只为一个用户返回一行并列出他的所有组和角色?
【问题讨论】:
-
你知道你想在这一行显示哪些角色吗?