Php mySQL表链接,组链接到其他成员列表,显示所有成员

Php mySQL表链接,组链接到其他成员列表,显示所有成员,php,mysql,dreamweaver,Php,Mysql,Dreamweaver,我有一个带有组(g1)和成员列表(m1)的数据库,它本身运行良好 但是,我想添加组(g1)的功能,将不同的组(g2-3)添加到它的列表中,这样一个查询将显示所有成员(M1)+(m2-3) 我的桌子是: Group(1) Table: Group1, Member(2) table: MemberA, MemberB, MemberC etc. 我想我需要某种类型的链接表,其中组(1)输入它想要订阅的组(2)成员 我在想链接表应该是这样的: GroupID, Group Name,Grou

我有一个带有
组(g1)
成员列表(m1)
的数据库,它本身运行良好

但是,我想添加
组(g1)
的功能,将不同的
组(g2-3)
添加到它的列表中,这样一个查询将显示所有
成员(M1)+(m2-3)

我的桌子是:

Group(1) Table:  Group1, 
Member(2) table: MemberA, MemberB, MemberC etc.
我想我需要某种类型的链接表,其中
组(1)
输入它想要订阅的
组(2)
成员

我在想链接表应该是这样的:

GroupID,  Group Name,GroupID, GROUP subscribed to Name 
Group(1), FancyGroup(1), Group(2), shabby Group(2) 
这就是我希望
组(1)
查询在订阅
组(2)
后的结果:

有什么想法吗?我意识到这是一个很长的问题,但我不知道一个更短的方法来纠正它

更新3/9:

以下是我的表名:

该组称为
系列
;行是(
userid、loginName等)
成员组称为
Member
;行是(
memberid、loginName、name、
等)
联接表称为
user2member
;行是(
userid,memberid

这是我用于查询的内容:

SELECT member.name
   FROM family
      JOIN user2member on family.userid = member.memberid
      JOIN member on user2member.name = member.name
     WHERE family.userid = '30'
   ORDER BY member.name
我遇到了这个错误:
~…在第5行使用near'WHERE family.userid='30'ORDER BY member.name LIMIT 0,30'


想法?

我想你是在试图表现团队和成员之间的多对多关系

为此,您需要一个组表,每个组有一行。 GroupID,GroupName,随便什么,随便什么

您需要一个成员表,每个人对应一行。 MemberID,Firstname,Lastname,随便什么,随便什么

然后需要一个联接表,一个groupmembership表。最简单的组成员资格表有如下行

MemberID,GroupID

每个组中每个成员有一行。如果应用程序需要,您可以将其他内容添加到此表中,例如DateJoined或ActiveMembership,或其他任何内容

然后,您将使用连接来取回数据。如果您想要“极客”组中的成员列表,您可以使用这样的连接

SELECT m.Firstname, m.Lastname
  FROM group g
  JOIN groupmembership gm on g.GroupID = gm.GroupID
  JOIN member m on gm.MemberID = m.MemberID
 WHERE g.GroupName = 'geeks'
ORDER BY m.Lastname, m.Firstname
如果您想要不属于任何组的成员列表,您可以这样做

SELECT m.Firstname, m.Lastname
  FROM member m
  LEFT JOIN groupmembership gm on m.MemberID = gm.MemberID
 WHERE gm.GroupID IS NULL
ORDER BY m.Lastname, m.Firstname

这是一个非常有用的设计模式。祝你好运。

我添加了正确的组名和成员名。我感到困惑。我还把你的查询和我的变量放在一起。我得到以下代码:错误1064-您的SQL语法有错误;查看与您的MySQL服务器版本对应的手册,以获得正确的语法,以便在g.memberid=gm.userid上使用near'JOIN user2member gm on g.memberid=gm.userid加入gm.name=m'在第3行,我用您的答案发布了一个新问题……我认为我的思路是正确的。我认为新问题的措辞更为恰当。谢谢你的帮助。你说得对,我并没有真正测试这个东西,很抱歉。1064不是一个伟大的错误信息吗?
SELECT m.Firstname, m.Lastname
  FROM member m
  LEFT JOIN groupmembership gm on m.MemberID = gm.MemberID
 WHERE gm.GroupID IS NULL
ORDER BY m.Lastname, m.Firstname