2012-07-28 29 views
1

顯示在單列多行多數據有有屬於個人用戶數據的多個行的表。 例如:使用我如何在mysql中

 regno      
    03/01/02   MTH111   MTH222 
          60    50 

    03/04/05    MTH333   MTH111 
          40    30 

我嘗試使用GROUP BY ....:

  regno   course  score   session  semester 
      03/01/02  Mth111  60   2   3 
      03/01/02  MTH222  50   2   3 
      03/04/05  MTH333  40   2   3 
      03/04/05  MTH111  30   2   3 

我要顯示特定會話和學期的值在每REGNO一行以這種方式foreach循環與mysql_fetch_assoc獲取列標題和一個group by子句......但只有一行顯示。我該如何解決這個問題。謝謝。

+0

你可以在查詢一起bodge的東西,但它是痛苦的脆弱。我會考慮獲取數據並構建一個數組,然後從中生成一個html表。只要一行與另一行不同,sql將會非常痛苦。如果你願意,我可以給你一些線索,但我甚至不會嘗試這個。 – 2012-07-28 14:27:34

回答

0

您可以使用下面的

select regno, concat(course,'\n',score) as someName from table1 

select regno, concat(course,'<br>',score) as someName from table1 

如果要顯示爲HTML。

編輯:Righto,我明白你的意思了。從SQLFiddle

03/01/02 Mth111|60,MTH222|50 
03/04/05 MTH333|40,Mth111|30 
+0

這將給出與我之前顯示的結果相同的結果。我希望regno只出現一次。 – ewom2468 2012-07-28 14:15:51

+0

@ ewom2468見編輯:) – Fluffeh 2012-07-28 14:23:07

+0

還是一樣的結果........ – ewom2468 2012-07-28 14:25:03

0

select regno, group_concat(concat(course, '|', score)) as courses from table1 group by regno 

結果的另一個解決方案是在這些記錄中拉一個程序,然後進行格式化你需要的方式。

這樣它會更容易理解和調試以後。