2017-04-13 43 views
0

我试图输出二维表在PHP,但无法弄清楚的SQL查询相同如何写一个mysql查询来获取2维表在PHP中?

我的表是如下

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循环才能获得上述输出?

+0

你能分享你试了一下学生的匹配和项目名称?看起来你正在寻找[crosstab](http://evolt.org/node/26896)查询。 –

回答

-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个简单的查询,然后在一个循环

相关问题