技術交流群:958923746,有學習視訊,文檔等。
最近再導資料,甲方要求資料全部導出來,由于涉及關聯表比較多,而且一對多的情況也很多,是以導成一條資料展示出來很麻煩。下面是我百度解決出來的辦法,可參考一下。
一對多查詢,合并成一條資料
步驟如下:
1:建立産品表:
2:建立型号表:
思路:
- 先寫出不含産品型号的查詢語句,
- 然後将一個産品對應的多個成分合并成一個字段,
- 将合成的字段插入到一個語句中
sql語句:
SELECT p.id AS '産品id',
p.product_name AS '産品名字',
p.type AS '産品類型',
(SELECT group_concat(pm .model) FROM product_model pm WHERE pm.product_id=p.id) AS '産品型号'
FROM product p
注意:這裡就用到一個函數:group_concat();
*如果要對合并的一方去重:嵌套DISTINCT即可:
(SELECT group_concat( DISTINCT(c.comName) ) FROM componen WHERE componen.proId= p.proId)
查詢結果:
完整文法:
group_concat([DISTINCT] 要連接配接的字段 [Order BY ASC/DESC 排序字段] [Separator '分隔符'])
這樣就把1對多表的資料全部放到一個字段中導出了!
轉載位址如下:https://www.cnblogs.com/dw3306/p/9638301.html