如何编写一个mysql查询来获取PHP中的二维表?

时间:2017-04-13 19:06:15

标签: php mysql

我正在尝试在php中输出一个2D表,但却无法找出相同的SQL查询

我的表格如下

Students
========
ID | Name
1  | Student1
2  | Student2
3  | Student3

Projects
========
ID | Name
1  | Project1
2  | Project2
3  | Project3

Timesheet
========
ID | Project_id | Student_id | hours
1  | 1          | 1          | 2.5
2  | 2          | 2          | 3
3  | 2          | 1          | 4.5
4  | 1          | 3          | 5
5  | 3          | 3          | 2
6  | 3          | 2          | 1
7  | 3          | 3          | 3.5
8  | 2          | 1          | 6

我希望输出如下

           | Student1 | Student2 | Student3
Project1   |    2.5   |    0     |   5
Project2   |   10.5   |    3     |   0
Project3   |     0    |    1     |   5.5

学生和项目的数量将增加而不是恒定。 是否可以在一个sql连接查询中编写或者我是否必须编写多个嵌套的php循环来获得上述输出?

1 个答案:

答案 0 :(得分:-1)

对于大数据集,使用多个JOIN的复杂查询基本上不好。

"SELECT SUM(hours) AS total FROM Timesheet GROUP BY Project_id, Student_id"

"SELECT ID,Name FROM Students"

"SELECT ID,Name FROM Projects"

我宁愿执行3个简单的查询,然后在单个循环中匹配学生和项目名称