sql >> Database >  >> RDS >> Mysql

Construct geneste objectgrafiek van SQL heeft veel relaties

U kunt dit doen met behulp van aggregaten en/of subquery's. Iets als:

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;

Als u dit wilt samenvoegen tot één string/json/iets, plaats het dan gewoon in een andere geaggregeerde query, zoals deze:

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;

Dit is een Postgres-query. Heb geen ervaring met Mysql.



  1. Tel de exemplaren in meerdere kolommen

  2. MySQL Voeg twee tabellen samen met door komma's gescheiden waarden

  3. Alleen tijd bijwerken in een mysql DateTime-veld

  4. Retourneer alleen rijen waarvan de maximale waarde kleiner is dan opgegeven