@kealman

MySQL. Как агрегировать sub-query в JSON?

Можно ли как-то в MySQL агрегировать саб запросы в JSON формат?
Например, как PgSQL:
SELECT t1.id, json_agg((SELECT * FROM t2 WHERE t2.id = t1.id)) FROM t1;


Спасибо!
  • Вопрос задан
  • 343 просмотра
Пригласить эксперта
Ответы на вопрос 1
qonand
@qonand
Software Engineer
в MySQL если не ошибаюсь нет аналога json_agg, но можно эту задачу решить к примеру конкатенацией, типа такого (запрос написал на коленке как пример направления куда двигаться):
SELECT 
    t1.id, 
    CONCAT('[{',
    GROUP_CONCAT( 
      (SELECT CONCAT('field1: ', t2.field1, ', field2: ' t2.field2) FROM t2 WHERE t2.id = t1.id)  
       SEPARATOR ' }, { '
   ), '}]'
FROM t1 GROUP BY t1.id


P.S. не рекомендую использовать вложенные запросы, лучше использовать JOIN
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы