如何获取属于特定组的成员列表

时间:2016-03-26 09:40:09

标签: php mysql sql join

我有以下表格

  • 群组表

groups table

  • 群组类型

group_types table

  • 用户表

    users table

  • group_users表

    group_users

我想获取组的所有详细信息(即组成员,使用联接的单个SQL查询中的组类型)

  

针对组ID 2的示例JSON输出

{
group_name : second,
group_type:private,
members_list : john , ben
}

我写过以下sql join但我还没达到目标。!!

select uls.name "username", gls.name "group name",gtp.name "group type",gus.status
from user_list uls, group_list gls, group_type gtp, group_users gus
where
uls.user_id=gus.user_id and
gls.group_id=gus.group_id and
gtp.type_id=gls.type_id and
gus.status='active' 
group by gls.name

我如何实现这一目标?

1 个答案:

答案 0 :(得分:1)

我会使用group_concat() function将成员列表放入一个字段中。我还会使用显式连接和完整组:

select group_concat(uls.name) "username", gls.name "group name",gtp.name "group type",gus.status
from user_list uls
inner join group_list gls
inner join group_type gtp
inner join group_users gus
on
uls.user_id=gus.user_id and
gls.group_id=gus.group_id and
gtp.type_id=gls.type_id
where gus.status='active' 
group by gls.name, gtp.name, gus.status