[英]MySQL: Select multiple records with comma separated values
我有三个表: store_products
, store_orders
和store_orders_products
。 store_products
包含所有的产品, store_orders
包含订单信息,并store_orders_products
包含的顺序每个单独的产品。
我正在构建一个“订单”页面,其中将列出每个下达的订单。 它将具有下订单者的用户名,日期,总金额和每种产品的名称。
该查询为我提供了我想要的一切,除了它只返回一个产品名称。 我希望每个产品都用逗号分隔的字符串。 我尝试了子查询, COALESCE
, CONCAT
, IN()
等,但是没有得到想要的结果。
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.