Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Construir um gráfico de objeto aninhado a partir do relacionamento SQL hasmany


Você pode fazer isso usando agregações e/ou subconsultas. Algo como:
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;

Se você precisar disso agregado em uma string/json/algo - basta envolvê-lo em outra consulta agregada como esta:
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;

Esta é uma consulta do Postgres. Não tenho experiência com Mysql.