我正在构建一个PHP5应用程序,我需要列出其中的项目以及关于它们的所有相关信息。为此,我有三个表格,分别命名为:kc_projects,kc_project_members和kc_users。我有ID的所有的人,并有各行中kc_project_members列连接各自的用户,他在注册项目做一个查询:最好的方法是什么?
现在,我有这个疑问:
SELECT * FROM kc_projects AS p
INNER JOIN kc_project_members AS pm
ON pm.PROJECT_ID = p.ID
INNER JOIN kc_users AS u
ON u.ID = pm.USER_ID
但它不能按我的意愿工作,因为它实际上是检索我想要的结果,但不是按照我想要的方式。它创建一个数组,另一个数组,并在该数组中,我有另一个数组包含查询结果。它也为我创建了每个用户的重复结果,这意味着如果我只有一个用户在该项目中注册,它只会返回一个项目。但是如果我有更多的东西,它会像注册用户那样返回我的数组,并且数组总是具有相同的项目信息。我希望他只返回一个项目,并在其中包含一个包含用户的数组。
有没有办法做到这一点,正确的方式?
感谢,
灼烧
你想要的输出目前尚不清楚。您可以在单个结果集中执行此操作,这可能会复制用户和项目信息,也可以通过执行多个查询并将结果集关联到您的PHP代码中来分解数据。你要哪个? – Thomas 2011-04-29 18:45:16
查询不会为您创建数组,这是在PHP端完成的。所以如果你对数组的布局不满意,那是因为你的代码构建错了。 – 2011-04-29 19:02:40
为“阵列问题”检查您正在使用的库或函数来执行结果和检索结果,检查文档中的“获取模式”大多数库可以处理多种获取模式,关联,组合等,选择你的。 – regilero 2011-04-29 19:11:25