0 votes
1 view
in SQL by (22k points)

I need to run a query like:

SELECT p.id, p.name, 

       (SELECT name 

          FROM sites s 

         WHERE s.id = p.site_id) AS site_list

  FROM publications p

But I'd like the sub-select to return a comma-separated list, instead of a column of data. Is this even possible, and if so, how?

1 Answer

0 votes
by (39.2k points)

Try using GROUP_CONCAT to return the comma-separated list, instead of the column of data perform like this:

SELECT p.id, p.name, GROUP_CONCAT(s.name) AS site_list

FROM sites s

INNER JOIN publications p ON(s.id = p.site_id)

GROUP BY p.id, p.name;

...