日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

    歡迎訪問 生活随笔!

    生活随笔

    當前位置: 首頁 > 运维知识 > 数据库 >内容正文

    数据库

    mysql一对多_mysql一对多查询合并多的一方的数据。

    發布時間:2023/12/2 数据库 26 豆豆
    生活随笔 收集整理的這篇文章主要介紹了 mysql一对多_mysql一对多查询合并多的一方的数据。 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

    有時候會有這樣一個需求,

    查詢的一條記錄需要包含另一個表的多條記錄,并且讓多條記錄成為一個字段組成最終的一條記錄。比較難描述,看例子吧。

    創建一個產品表:

    create table product(

    proId int(10),

    proName varchar(50)

    )

    創建一個成分表:

    create table componen(

    comId int (10),

    proId int(10),

    comName varchar(50)

    )

    案例需求:如果一個產品有多個成分,也就是一個產品表對應多個成分表,我想查出的結果,一條記錄包含產品 proId, ProName, ComName,的字段。

    思路:

    先寫出不含成分表的查詢語句,

    然后將一個產品對應的多個成分合并成一個字段,

    將合成的字段插入到一個語句中。

    實踐:

    1. select p.proId , p.proName from product p;

    2. SELECT group_concat( c.comName ) FROM componen WHERE componen.proId= 1

    3. SELECT

    p.proId AS "產品id",

    p.proName AS "產品名稱",

    (SELECT group_concat( c.comName ) FROM componen WHERE componen.proId

    = p.proId)AS "成分"

    FROM

    product p;

    *注意:第2步驟的語句和第三部引用第二部的語句有差別,那部分很重要的!

    *如果要對合并的一方去重:嵌套DISTINCT即可

    (SELECT group_concat( DISTINCT(c.comName) ) FROM componen WHERE componen.proId= p.proId)

    總結

    以上是生活随笔為你收集整理的mysql一对多_mysql一对多查询合并多的一方的数据。的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。