2013-02-11 3 views
6

のすべての行がremainと呼ばれる示しています。ここのmysql - グループが、私はグループフィールドにしたいが、列のすべての行を表示したい列

をグループ化することなく、電流出力です:

enter image description here

グループと

そして出力:

enter image description here

そして、私はこれをしたいとき、Iグループ:

ここ

enter image description here

は、MySQLのクエリです:

SELECT staff.name, 
    staff.designation_id_designation, 
    staff.status_id_status, 
    Concat_Ws('=', leave_remain.leave_type_id_leave_type, leave_remain.days) AS 
    remain 
FROM staff INNER JOIN 
    leave_remain ON staff.id_staff = leave_remain.staff_id_staff 
GROUP BY staff.name  

答えて

9

使用GROUP_CONCAT

SELECT staff.name, 
     staff.designation_id_designation, 
     staff.status_id_status, 
     GROUP_CONCAT(Concat_Ws('=', leave_remain.leave_type_id_leave_type, leave_remain.days)) AS remain 
FROM staff 
     INNER JOIN leave_remain 
      ON staff.id_staff = leave_remain.staff_id_staff 
GROUP BY staff.name, staff.designation_id_designation, staff.status_id_status 

他のリンク(S)

+0

ありがとう、魅力的なように働いた – user007

+0

あなたは歓迎です::D' –

+0

男!グループconcatはBLOBを返します???なぜ??ハウツーをvarcharに設定しますか? – user007

1

これを試してみてください:

SELECT staff.name, 
    staff.designation_id_designation, 
    staff.status_id_status, 
    GROUP_CONCAT(Concat_Ws('=', leave_remain.leave_type_id_leave_type, leave_remain.days) SEPARATOR ' ') AS remain 
FROM staff INNER JOIN 
    leave_remain ON staff.id_staff = leave_remain.staff_id_staff 
GROUP BY staff.designation_id_designation, 
     staff.name, 
     staff.status_id_status; 
1

しようと、この本のために、我々は '' でgroup_contact別々に使用する必要があります。

SELECT staff.name, 
    staff.designation_id_designation, 
    staff.status_id_status, 
    GROUP_CONCAT(Concat_Ws('=', leave_remain.leave_type_id_leave_type, leave_remain.days) SEPARATOR ' ') AS remain 
FROM staff 
INNER JOIN 
    leave_remain 
ON 
staff.id_staff = leave_remain.staff_id_staff 
GROUP BY staff.designation_id_designation, 
     staff.name, 
     staff.status_id_status; 
関連する問題