Mysql返回多个逗号分隔的记录

时间:2011-06-28 14:43:08

标签: mysql

我正在尝试返回讨论列表及其附加队列(ID和名称)。

到目前为止,我有以下内容:

SELECT a.id as discussion_id,c.queue_id,e.queue_name
FROM support_discussions AS a

JOIN (
 SELECT b.queue_id,b.discussion_id
 FROM support_queues_discussions AS b
) AS c ON a.id=c.discussion_id

JOIN (
 SELECT d.id,d.name AS queue_name
 FROM support_queues AS d
) AS e ON c.queue_id=e.id

返回以下内容(按预期方式):

  

discussion_id | queue_id | queue_name

     

1 | 1 |队列名称A

     

1 | 2 |队列名称B

我真正想做的是让它将每个讨论作为一行返回,以及队列ID和队列名称的单独列:

  

discussion_id | queue_id | queue_name

     

1 | 1,2 |队列名称A,队列名称B

有关如何以有效的方式完成此事的任何想法?

2 个答案:

答案 0 :(得分:1)

mysql中有GROUP_CONCAT函数,它可以完全满足您的需求

您是否考虑过如果队列名称包含逗号字符会发生什么?也许你应该重新考虑你的解决方案,因为你所描述的听起来有点狡猾

答案 1 :(得分:1)

您可以使用GROUP_CONCAT