SQL GROUP BY - 一列中有多个结果?

时间:2010-10-12 13:09:46

标签: mysql group-by

我正在尝试使用GROUP BY子句执行SELECT查询,但是我还需要从多个行访问数据并以某种方式将其连接到单个列中。

这是我到目前为止所拥有的:

SELECT
COUNT(v.id) AS quantity, 
vt.name AS name, 
vt.cost AS cost, 
vt.postage_cost AS postage_cost 
FROM vouchers v 
INNER JOIN voucher_types vt 
ON v.type_id = vt.id 
WHERE 
v.order_id = 1 AND 
v.sold = 1 
GROUP BY vt.id

以下列格式给出了我需要的前四列。

quantity | name | cost | postage_cost
2           X      5         1
2           Y      6         1

但是,我还希望显示第五列,显示与订单的每一行相关的所有代码,如下所示:

code
ABCD, EFGH
IJKL, MNOP

从凭证表中提取逗号分隔值。

这可能吗? 任何建议将不胜感激。

由于

1 个答案:

答案 0 :(得分:2)

这是GROUP_CONCAT的作用。

假设该列名为code,您只需将,GROUP_CONCAT(v.code) As Codes添加到select列表中。