我有 3 个表(仅对此处的问题列很重要):
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
我只想获得最重要的组-管理员作为组管理员的成员,用户作为组版主的成员。