Můžete to udělat pomocí agregátů a/nebo poddotazů. Něco jako:
select title, content, json_agg(comments.author, comments.message) as comments
from articles
join comments on articles.article_id = comments.article_id
group by article_id;
Pokud to potřebujete agregovat do jednoho řetězce/json/něco – stačí to zabalit do dalšího souhrnného dotazu, jako je tento:
select json_agg(sub)
from (
select title, content, json_agg(comments.author, comments.message) as comments
from articles
join comments on articles.article_id = comments.article_id
group by article_id) sub;
Toto je dotaz Postgres. Nemáte žádné zkušenosti s Mysql.