@IvanS1989

Выборка mysql c двух таблиц?

Есть две таблицы в одном колонка названия фильмов, во втором жанры. Они связаны внешним ключом айдишник таблицы с фильмами и Ид_филмс таблицы с жанрами. Нужно объединить названия фильмов с жанрами, так что если у фильма несколько жанров они перечислялись в одной строке через запятую в одной строке. Через inner join в разных строках я сам могу объеденить. Кто сможет подсказать как можно такой запрос на выборку сделать?
  • Вопрос задан
  • 118 просмотров
Решения вопроса 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
Nexen2
@Nexen2
Web backend Yii2/Symfony Coder
Более полный ответ - ты должен сделать группировку (group by) по фильму, все остальные таблицы соответственно дают множество значений. Group_concat - функция, которая по названию поля вернет тебе множество значений этого поля через запятую. Запятую, кстати, можно поменять на свой символ. Также результат этой функции ограничен по длине, кажется 4084 символа или около того, читай документацию по этой функции на офф-сайте что бы узнать каким запросом можно запросить "больше", в случае, если у тебя названия жанров длинные или их много.
Ответ написан
Комментировать
@IvanS1989 Автор вопроса
Всем спасибо прочитал немного про concat.
Подошел код - select films.name, GROUP_CONCAT(genres.name) from films INNER JOIN genres on films.id = genres.id_films GROUP BY films.name.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы