假設兩個表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; |
新聞熱點
疑難解答