1. 程式人生 > >mysql 合併多行資料到一行

mysql 合併多行資料到一行

假設兩個表a,b,b中通過欄位id與a表關聯,a表與b表為一對多的關係。假設b表中存在一欄位name,現需要查詢a表中的記錄,同時獲取儲存在b表中的name資訊,按照常規查詢,b表中有多少記錄,則會顯示多少行,如果需要只顯示a表記錄行數,則需要把查詢name欄位得到的多行記錄進行合併,可以通過程式實現,但也可直接在sql層完成。

方法:

利用group_concat()方法,引數為需要合併的欄位,合併的欄位分隔符預設為逗號,可通過引數separator指定,該方法往往配合group by 一起使用。

例子 :

select a.*,group_concat(b.name separator '-') as name from a left join b on a.id=b.id group by a.id;