1

個々のユーザーに属する複数のデータ行を持つテーブルがあります。例えば:

            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 ごとに 1 行に表示したいと考えています。

      regno                    
    03/01/02            MTH111         MTH222
                          60             50

   03/04/05             MTH333          MTH111
                          40             30

group by を使用してみました....mysql_fetch_assoc で foreach ループを使用して、列ヘッダーと group by 句を取得しました...しかし、1 行しか表示されませんでした。どうすれば解決できますか。ありがとうございます。

4

2 に答える 2

0

別の解決策は、これらのレコードをプログラムに取り込み、必要な方法でフォーマットすることです。

これにより、後で理解しやすくなり、デバッグしやすくなります。

于 2012-07-28T14:42:20.117 に答える
0

以下を使用できます

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

また

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

HTMLに表示している場合。

編集:そうですね、あなたの言いたいことがわかりました。

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

SQLFiddle の結果

03/01/02    Mth111|60,MTH222|50
03/04/05    MTH333|40,Mth111|30
于 2012-07-28T14:10:47.310 に答える