результате при джойне двух таблиц будет такая структура:
{
id: 1,
column1: '',
column2: '',
table_2: {
column1: '',
table_1_id: 1,
}
}
в мускуле напрямую так не получится, конечно, но копать тебе надо в рекурсивные выборки. Потому уже в дерево сам сложишь
Спасибо, посмотрю что из себя представлт рекурсивные выборки
А уровней всегда будет ровно два? Не больше?
А вот эти все скобки, кавычки и прочее форматирование тоже надо в MySQL получить?
вот так можно) SELECT CONCAT('[', GROUP_CONCAT('{', json_t1, '}' SEPARATOR ','), ']') FROM ( SELECT concat( CONCAT ( '"id":' , '"', t1.id , '"', ',' '"column1":', '"', t1.column1, '"', ',' '"column2":', '"', t1.column2, '"', ',' ), "table_2: {", CONCAT ( '"id":' , '"', t2.id , '"', ',' '"column1":', '"', t2.column1, '"', ',' '"column2":', '"', t2.column2, '"', ',' ), "}" ) AS json_t1 FROM table1 t1 join table2 t2 on t2.table1_id = t1.id ) as json_res
вот тут тест https://www.db-fiddle.com/f/iDL6icsd6GovS65D6uUbPs/0
А тебе спасибо, ты реально заморочился с этим, просто респект
я еще чуток заморочился и получилось красивее) select GROUP_CONCAT('[', json1, ']' SEPARATOR ',') from ( select JSON_OBJECT( 'id', t1.id, 'column1', t1.column1, 'column2', t1.column2, 'table2', JSON_OBJECT( 'id', t2.id, 'column1', t2.column1, 'column2', t2.column2 ) ) as json1 from table1 t1 join table2 t2 on t2.table1_id = t1.id ) as t
Обсуждают сегодня