从单个mysql查询创建多维数组结果

时间:2013-09-19 13:06:34

标签: mysql multidimensional-array

我已经研究过这几天了,我似乎无法为我找到合适的查询。

表格

1。项目

  • ID
  • 项目名称
  • 日期

2。注释

  • noteid
  • 注释
  • 专案编号

通缉结果:

array =>
    project1 =>
        Notes1
        Notes2
        Notes3

    project2 =>
        Notes1
        Notes2
    project3 =>
    ….........

我正在努力创建一个单独的查询来填充我想要的结果 - 从项目中选择所有字段,并为每个id创建另一个数组,以保存与notes.id匹配的所有结果。专案编号。

1 个答案:

答案 0 :(得分:2)

您将需要使用您使用的任何语言来为您组织阵列。

您要使用的SQL查询是:

SELECT projects.*, notes.noteid, notes.note
FROM projects LEFT JOIN notes ON
    projects.id = notes.projectid
LIMIT 250;

使用限制,这样您就不会拥有庞大的数据集。您可以将限制设置为适合您需要的限制,或者如果您确定不需要了解数据集大小,则可以省略它。

这将返回如下数据集:

+----------+-------------+----------+----------+----------+
| id       | projectname | date     | noteid   | note     |
+----------+-------------+----------+----------+----------+
| 1        | Project1    | 1/1/2000 | 1        | Notes1   |
| 1        | Project1    | 1/2/2000 | 2        | Notes2   |
| 1        | Project1    | 1/3/2000 | 3        | Notes3   |
| 2        | Project2    | 1/4/2000 | 4        | Notes1   |
| 2        | Project2    | 1/5/2000 | 5        | Notes2   |
| 3        | Project3    | 1/6/2000 | NULL     | NULL     |
+----------+-------------+----------+----------+----------+

我使用LEFT JOIN作为项目尚未提供任何备注的实例。您可以看到Project3的结果。然后由您的编程语言来组织您的数据集。如果不了解您的语言的限制,我不想过多地理解如何组织这个。