SQL
Aggregate Multiple Related String Values into a Single Column
Learn to concatenate multiple string values from grouped rows into a single, comma-separated string within your SQL query, useful for tag lists or multi-valued attributes.
-- PostgreSQL
SELECT
p.product_id,
p.product_name,
STRING_AGG(t.tag_name, ', ') AS tags
FROM
products p
LEFT JOIN
product_tags pt ON p.product_id = pt.product_id
LEFT JOIN
tags t ON pt.tag_id = t.tag_id
GROUP BY
p.product_id, p.product_name;
-- MySQL
SELECT
p.product_id,
p.product_name,
GROUP_CONCAT(t.tag_name SEPARATOR ', ') AS tags
FROM
products p
LEFT JOIN
product_tags pt ON p.product_id = pt.product_id
LEFT JOIN
tags t ON pt.tag_id = t.tag_id
GROUP BY
p.product_id, p.product_name;
How it works: This snippet demonstrates how to aggregate multiple related string values (e.g., tags associated with a product) into a single, comma-separated string within the result set. This is achieved using STRING_AGG in PostgreSQL and GROUP_CONCAT in MySQL. It's particularly useful for displaying lists of attributes or categories directly alongside the main entity without needing additional queries or complex application-level logic.