Mysql有多少选择数据 - 可能吗?

时间:2014-03-29 23:17:04

标签: mysql sql database many-to-many

我有2个表加入3个表,因此有多对多的关系,我试图让所有用户显示一次,但是所有用户都是用户组

Users
- user_id
- email

groups
- group_id
- broup_name

users_groups
- users_groups_id
- user_id
- group_id

我正在尝试获取所有用户并显示每个用户一次,但是所有用户都是用户组,如下所示:

some@user.dk - admin, moderator, public
another@user.dk - moderator, public

甚至可以选择这样的数据,还是必须在代码中对其进行排序?

1 个答案:

答案 0 :(得分:2)

是的,这是可能的。这很容易。

SELECT email, GROUP_CONCAT(DISTINCT group_name ORDER BY g.group_id) AS groups
  FROM Users AS u
  JOIN users_groups AS ug ON u.user_id = ug.user_id
  JOIN Groups AS g on ug.group_id = g.group_id
 GROUP BY email
 ORDER BY email

每个电子邮件将显示一行,其中属于该用户的不同组按组ID的顺序显示。 Ť