Вывод нескольких строк в один массив

Печать / RSS
32


Пацак
0
А возможно ли как то сделать запрос чтоб на выходе был так
array (
'id' => 1,
'self_id' => 1 ,
'user_id' => 1 ,
'text' => 'text post',
'attach_audio' => array (
0 => array (
'audio_id' => 10 ,
'title' => 'track title'
)
)
)

скажем что то в этом роде
SELECT post.*, (SELECT audio.* FROM audio WHERE audio IN (post.attach_audio)) as attach_audio
FROM post

?????????

Господин ПЖ
0
Твой запрос вернет данные к примеру в виде одномерного массива
тебе нужно сделать 2 запроса которые будут получать отдельно посты и отдельно аудио
и потом соединять

Пацак
0
2. Vantuz, как сделать это с помощью двух запросов я знаю, но вот думал, может есть запрос, который может это сделать с помощью одного.. ведь в списке вывода записей будет 20 записей и к каждому записи делать запрос к аудио будет суммарное значение запросов.. по гуглил и для mysql не нашел решения, но postgreSQL возможно такое((

Господин ПЖ
0
если бы была связь 1 к 1 можно было бы сделать через left join, но с один ко многим так не получится
поэтому обычно делают вот так
select * from posts;
select * from audio where post_id IN(список id из выборки выше);

Добавлено через 01:17 сек.
с помощью ORM и жадной загрузкой было бы проще писать, а так тот же самый запрос

Пацак
0
ясно.. спасибо))
Для выполнения действия необходимо авторизоваться!
Стикеры / Теги / Правила / Топ тем / Топ тем / Поиск