2011-06-02 66 views
1

我是高级MySQL的新手,昨天只遇到了多对多的关系。我正在开发一个项目,用户可以加入多个项目,项目可以容纳多个用户。PHP/MySQL多对多关系 - 下一步

我的表是:

用户 - ID,姓名,电子邮件,密码等 项目 - ID,姓名,地址等

继本网站的建议,我已经建立了一个链接表有两个外键匹配上表的ID:

Users_Projects - Users_ID,Projects_ID

我明白了,下一步是什么做的加盟,但我怎么将用户添加到一个表,或看看谁米项目的余烬是/特定用户所属的项目?

回答

1

项目给定用户:

SELECT * 
FROM Projects p 
LEFT JOIN users_projects up ON p.projects_id = up.projects_id 
WHERE up.users_id = [INSERT USERID HERE] 
+0

是什么在p这里的意思?错误告诉我p.projects_id是未知的。 – Sebastian 2011-06-02 15:06:26

+0

p和up是简写别名,因此您不必在连接条件和where子句中完整写入表名。我没有安装MySQL,我可以对它进行测试,以免在您的版本中支持。 – Emyr 2011-06-03 07:53:26

0

要指定用户对项目,则需要输入用户ID和项目ID为User_Projects表,查看哪些用户在选定的项目中,您可以键入:

SELECT Users.name, Users.email etc.. from Users_Projects JOIN Users on Users.ID = 

Users_Projects.Users_ID JOIN项目ON Projects.ID = Users_Projects.Projects_ID WHERE(把你的地方在这里的讲话)

了解更多关于维基:JOIN wikipedia

0

我想你忘记了一个ID(用户,请创建新的字段用户表“专案编号”)

ADD USER => INSERT INTO users (name,email,...) VALUES ('fred','[email protected]',...); 
CHECK USER => SELECT name, email FROM USERS; 
CHECK USER BY PROJECT ID => SELECT name, email FROM USERS, PROJECTS WHERE USERS.projectid = PROJECTS.id