mergenich
@mergenich

Как сделать запрос к трем таблицам и вернуть json?

Есть три таблицы: пользователи, плейлисты, треки. Плейлисты могут быть общими, а один трек может быт в разных плейлистах. Пытаюсь в одном json вернуть информацию о пользователе и плейлисты с треками.

Сначала сделал такую структуру БД с двумя сводными таблицами:
a8e7a2997b334669a805c14303163db5.PNG
Однако не смог сформулировать нормальный запрос, чтобы одним запросом выводило и плейлисты пользователя, и треки к ним. Была мысль взять плейлисты пользователя и в цикле делать отдельные запросы для треков, но мне показалось что запахло говнокодом и эта идея была отброшена.

Затем переделал БД вот в это:
2fe3108a5a63479d9bf5f0dcfe1bfb7c.PNG
Работает, но json плоский одноуровневый, а хочется с вложенными объектами.

Первый вариант БД кажется хорошим, пока вернул его обратно.
Нужен совет, как правильно сформулировать к нему запрос, принимаются и любые другие решения.

СУБД - MySQL, Laravel PHP, Eloquent ORM.
  • Вопрос задан
  • 2956 просмотров
Пригласить эксперта
Ответы на вопрос 1
nazarpc
@nazarpc
Open Source enthusiast
Какой массив передадите в json_encode() - такой JSON и получите. Не хотите плоский - передавайте вложенный, ему всё равно.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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