Задать вопрос
Slash-Zn
@Slash-Zn

Как получить массив в массиве, в одном запросе?

Здравствуйте.

Один запрос получает массив с массивами каких либо записей, например, запрос получает массив состоящий из тем форума:
id => 547,
title => Name Theme,
total_post => 703
И так далее.

А как можно выполнить запрос, чтобы в одном из значений массива темы форума был еще один массив:
id => 547,
title => Name Theme,
total_post => 703,
data => array(34, 67, 32)
Или только делать отдельный запрос для каждой записи-темы?

Спасибо.
  • Вопрос задан
  • 238 просмотров
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Skillfactory
    Профессия Fullstack веб-разработчик на JavaScript и PHP
    20 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Решения вопроса 1
ipatiev
@ipatiev Куратор тега PHP
Потомок старинного рода Ипатьевых-Колотитьевых
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@rPman
Зачем?

Я надеюсь ты объединяешь в одном запросе данные изначальной таблицы и той из которой собираешь data с помощью inner (left если нужны записи с пустым data) join?

Реляционные базы данных это про буквально табличное представление данных, не подразумевающее наличие вложенных списков (в некоторых типа oracle есть такие типы но по сути это как бы отдельный запрос к серверу, да достаточно эффективный но запрос).

Если тебе нужен плохой совет, ты можешь сериализовать данные, собрав строку из них, например с разделителем ',' с помощью GROUP_CONCAT. В этом случае, используя группировку ты исключишь из результата запроса дубликаты (который умножает данные таблицы на данные data, дублируя колонки из таблицы) но потратишь время на конкатенацию на sql сервере и парсинг (для числ да простой) массива из строки на бакэнде.
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы
FoodSoul Калининград
от 180 000 до 250 000 ₽
IT-Spirit Москва
от 230 000 до 320 000 ₽
от 200 000 до 290 000 ₽