-1

I have a query of the form

SELECT pub.id, topic.id, pub.title, etc... 
FROM pub, topic, link
WHERE (matching logic)

which returns in the form

pub.id  |  topic.id  |  pub.title
---------------------------------
x1      |  a         |  y1
x1      |  b         |  y1
x1      |  ...       |  y1

x2      |  c         |  y2
x2      |  d         |  y2
x2      |  ...       |  y2

what I really want is a response of the form

pub.id  |  topic.id  |  pub.title
---------------------------------
x1      |  a, b ...  |  y1
x2      |  c, d ...  |  y2

(I don't think the matching logic is important, but I'll post it if necessary.)

I've tried group_concat() and coalesce, but nothing works. Any help?

1 Answers1

4

Did you remember to include GROUP BY in your GROUP_CONCAT test?
You cannot concatenate a group if you don't group the data.

Here's a working example: http://sqlfiddle.com/#!2/5cd63/2

It should amount to:

SELECT pub.id, GROUP_CONCAT(topic.id SEPARATOR ','), pub.title
FROM pub, topic
WHERE (matching logic)
GROUP BY pub.id, pub.title
Mr. Llama
  • 20,202
  • 2
  • 62
  • 115