使用数组

时间:2017-09-25 17:04:06

标签: php mysql arrays

在我的网站上,我有会员。这些成员可以创建项目,其他成员可以跟踪每个项目:

我有一个名为“members”的第一个Mysql表,其中包含以下列: id / name

我有一个名为“Projects”的第二个Mysql表: id / founder

我有一个名为“Follow”的第二个Mysql表: id / idmember / idproject

我的目标是向任何成员展示工作人员:

列出所有成员:

  • 按照与我相同的项目

  • 关注我创立的项目

  • 创建了我关注的项目

但我需要显示没有重复的结果。例如,如果我关注您的项目,并且我是您关注的项目的创始人,那么您只需要看一次我。

我已经开始使用数组,这似乎是一个很好的解决方案,但我真的无法想象如何做到这一点。 感谢。

1 个答案:

答案 0 :(得分:0)

假设您的members.id1337Projects.founder是外键加到members.id,那么您可以使用UNION制作包含重复项的表,然后DISTINCT 1}}:

SELECT DISTINCT id, name
FROM (
  SELECT members.id, members.name
  FROM members, Follow f1, Follow f2
  WHERE members.id = f1.idmember
  AND f1.idproject = f2.idproject
  AND f2.idmember = 1337
  UNION
  SELECT members.id, members.name
  FROM members, Follow, Project
  WHERE members.id = Follow.idmember
  AND Project.id = Follow.idproject
  AND Project.founder = 1337
  UNION
  SELECT members.id, members.name
  FROM members, Follow, Project
  WHERE Follow.idmember = 1337
  AND Project.id = Follow.idproject
  AND Project.founder = members.id
)