我在mysql数据库中有这3个表(我也不知道它是否完全规范化了?
或者有没有更好的方法来设计这个表来获取这个查询?)
create table T_Users(
id int
name varchar (50)
picture varchar (11)
);
create table T_Groups(
id int
name varchar (50)
admin_id int
);
create table T_Group_Users(
u_id int
g_id int
);
现在,我想获得指定用户加入的所有组,以及这些组的所有成员的详细信息(名称和图片),并通过php创建一个这样的数组(这是一个示例):
$groups = [ // Groups user by id = 1 joined 'em
[
'id' => 1,
'name' => 'G_1',
'member' => [
['name' => 'R', 'picture'=>''],
['name' => 'S', 'picture'=>'14.jpg'],
['name' => 'X', 'picture'=>'']
]
],
[
'id' => 5,
'name' => 'G_3',
'member' => [
['name' => 'T', 'picture'=>'11.jpg'],
['name' => 'S', 'picture'=>'14.jpg']
]
]
]
(由id确定的指定用户, u_id
是外键 T_Users
以及 g_id
是外键 T_Groups
)
1条答案
按热度按时间at0kjp5o1#
如果您只需要ID,可以执行以下操作:
这将返回一行中的每个组,其中包含组中用户的ID列表。
如果你想知道名字,你可以
join
在适当的表格中。编辑:
要获取姓名和其他信息:
在这里
?
用于具有名称的参数。