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

标签 php mysql dreamweaver

我有一个包含group(g1)members(m1)列表的数据库,它本身工作得很好。

但是,我想添加 group(g1) 的功能,将不同的 groups(g2-3) 添加到其列表中,以便查询会显示所有结果是members(M1)+(m2-3)

我的 table 是:

Group(1) Table:  Group1, 
Member(2) table: MemberA, MemberB, MemberC etc.

我认为我需要某种类型的链接表,其中 group(1) 输入它想要订阅 Group(2) 成员。

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

GroupID,  Group Name,GroupID, GROUP subscribed to Name 
Group(1), FancyGroup(1), Group(2), shabby Group(2) 

这就是我希望 Group(1) 查询订阅 Group(2) 后的结果:

Fancy Group
Fancy MemberA
Fancy MemberB
Fancy MemberC
Shabby  MemberA
Shabby Member B

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

更新 3/9:

这些是我的表名称:

该群组称为family;行是 (userid,loginName..etc)
成员(member)组称为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 行的“WHERE family.userid = '30' ORDER BY member.name LIMIT 0, 30”附近使用的语法

想法?

最佳答案

我认为您正在尝试表示群组和成员之间的多对多关系。

为此,您需要一个组表,每个组对应一行。 GroupID、GroupName,无论什么,无论什么。

您需要一个成员表,其中每个人一行。 成员(member)ID、名字、姓氏,等等,等等。

然后您需要一个连接表、一个组成员资格表。最简单的组成员资格表有这样的行

成员(member)ID、群组ID

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

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

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

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

关于php - mySQL表链接,组链接到其他成员列表,显示所有成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2392913/

相关文章:

php - mysqli_query的奇怪错误和结果

PHP Session 变量未保存

php - 正确使用MySQL JOIN

javascript - 如何在 yii2 中的单个 Controller 中使用多个场景?

Mysql 就像来自逗号字段的内爆

MySQL查询连续日期范围的记录

html - 网格/框标题菜单 Dreamweaver

css - Dreamweaver cc bootstrap 中缩略图的大小对齐

php - 作为 shell 脚本的 PHP 权限被拒绝

php - 算法的时间复杂度: find length of a longest palindromic substring