天天看點

909422229_mysql資料庫一對多如何合并一條資料

技術交流群:958923746,有學習視訊,文檔等。

最近再導資料,甲方要求資料全部導出來,由于涉及關聯表比較多,而且一對多的情況也很多,是以導成一條資料展示出來很麻煩。下面是我百度解決出來的辦法,可參考一下。

一對多查詢,合并成一條資料

步驟如下:

1:建立産品表:

909422229_mysql資料庫一對多如何合并一條資料

2:建立型号表:

909422229_mysql資料庫一對多如何合并一條資料

思路:

  1. 先寫出不含産品型号的查詢語句,
  2. 然後将一個産品對應的多個成分合并成一個字段,
  3. 将合成的字段插入到一個語句中

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)
           

查詢結果:

909422229_mysql資料庫一對多如何合并一條資料

完整文法:

group_concat([DISTINCT] 要連接配接的字段 [Order BY ASC/DESC 排序字段] [Separator '分隔符'])
           

這樣就把1對多表的資料全部放到一個字段中導出了!

轉載位址如下:https://www.cnblogs.com/dw3306/p/9638301.html

繼續閱讀