0

我已经对此进行了几天的研究,但似乎找不到适合我的查询。

1. 项目

  • ID
  • 项目名称
  • 日期

2. 备注

  • 注意ID
  • 笔记
  • 投影

想要的结果:

array =>
    project1 =>
        Notes1
        Notes2
        Notes3

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

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

4

1 回答 1

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     |
+----------+-------------+----------+----------+----------+

我将 aLEFT JOIN用于项目还没有任何注释的实例。您可以看到结果会是什么样子Project3。然后由你的编程语言来组织你的数据集。在不知道您的语言限制的情况下,我不想过多地理论化如何组织它。

于 2013-09-19T13:30:47.583 回答