我有三个表格(这里只涉及问题列):
USERS GROUPS USERS_GROUPS
id id user_id
importance group_id
color
如您所见,一个用户可以在多个组中,每个组都有不同的颜色,一些组比其他组更重要。例如,用户A在“编辑器”(蓝色)和“管理员”(绿色)组中。他应该显示为哪种颜色?绿色,因为管理员比编辑器更重要。
但我不知道(也许在一个查询中不可能?)如何从组表中获取用户的颜色。我已经创建了这样的查询:
SELECT * FROM `users` INNER JOIN users_groups ON users_groups.user_id = users.id INNER JOIN groups ON groups.id=users_groups.group_id
但是它返回的用户行数与用户所在的组数一样多,就像这样:
USERNAME (...) GROUP_ID NAME (group) COLOR IMPORTANCE
user 2 moderator green 50
user 3 editor blue 25
administrator 1 admin orange 100
administrator 3 editor blue 25
我希望只有最重要的组 - 管理员作为组管理员的成员,普通用户作为组主持人的成员。