簡體   English   中英

MySQL:選擇多個用逗號分隔值的記錄

[英]MySQL: Select multiple records with comma separated values

我有三個表: store_productsstore_ordersstore_orders_products store_products包含所有的產品, store_orders包含訂單信息,並store_orders_products包含的順序每個單獨的產品。

我正在構建一個“訂單”頁面,其中將列出每個下達的訂單。 它將具有下訂單者的用戶名,日期,總金額和每種產品的名稱。

該查詢為我提供了我想要的一切,除了它只返回一個產品名稱。 我希望每個產品都用逗號分隔的字符串。 我嘗試了子查詢, COALESCECONCATIN()等,但是沒有得到想要的結果。

SELECT 
    o.id AS order_id
    , o.order_total
    , o.created_at
    , u.username
    , u.avatar
    , sp.name 
FROM store_orders o 
JOIN store_orders_contents c ON o.id=c.oid 
JOIN store_products p ON p.id=c.pid
JOIN users u ON u.id=o.consumer_uid
JOIN store_products sp ON sp.id=c.pid
WHERE p.uid=3
GROUP BY order_id

我想你想要group_concat()

SELECT o.id AS order_id, o.order_total, o.created_at, u.username, u.avatar,
       group_concat(sp.name )
FROM store_orders o JOIN
     store_orders_contents c
     ON o.id = c.oid JOIN
     store_products p
     ON p.id = c.pid JOIN
     users u
     ON u.id = o.consumer_uid JOIN
     store_products sp
     ON sp.id = c.pid
WHERE p.uid = 3
GROUP BY order_id;

我不明白為什么您要兩次加入store_products ,但是我想您知道您對聯接的操作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM