2017-04-13 21 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個簡單的查詢,然後在一個循環