2013-01-17 48 views
4

我有一個數據庫,其中包含ID號,名稱,班期和教師姓名。每行包含學生的ID,姓名,學期和教師,這意味着每個學生都有多行。這不是我的問題。我的問題是有些班級列有兩位老師......這意味着一個班級有兩個單獨的行,每個老師一個。不幸的是,我無法控制數據的格式,因爲它是從沒有很多格式化選項的系統導出的。PHP MySQL將來自不同行的單元格的值相同

以下是一個例子,請注意第23和24行是否適用於同一班級學生和學生,但唯一不同的是教師姓名。

pk id  last first period teacher 
14 12345 Smith John 3  HARRIS 
15 12345 Smith John 8  LEAL 
17 12345 Smith John 1  HOUSTON 
23 56789 Doe  Jane 8  MERCER 
24 56789 Doe  Jane 8  RUIZ 
25 56789 Doe  Jane 3  BECK 
26 56789 Doe  Jane 1  STEED 

我想將具有相同週期編號和學生姓名的兩行合併成一行。所有的信息將保持不變,除了兩個不同的老師的名字將被合併成「Mercer & Ruiz」。理想情況下,最終結果如下所示:

24 56789 Doe Jane 8 MERCER & RUIZ 

這可能使用PHP和/或MySQL嗎?我不想找人編寫整個代碼或任何東西。我似乎無法想出一個辦法來實現它。我會很高興有任何方向/跡象表明這種方式。

一如既往,感謝您的時間和幫助。

回答

5
SELECT MAX(pk), 
     ID, 
     `last`, 
     `first`, 
     GROUP_CONCAT(teacher SEPARATOR ' & ') teachers 
FROM tableName 
// WHERE clause here... 
GROUP BY `last`, `first`, `Period` 
// ORDER BY clause here.... 

SOOURCE

+1

工作完美!非常感謝你! –

+0

不客氣':D' –

1
SELECT pk,id,last,first,period GROUP_CONCAT(teacher) 
FROM table 
GROUP BY id, first,last,period 

應該做你所需要的。

相關問題