MySQL — выборка из нескольких таблиц

Нужно сделать БД с фильмами. У каждого фильма — несколько названий (рус, англ и т.п.), несколько жанров (ужас, триллер и т.д.), может быть несколько режиссеров, куча актёров. Всё хочется раскидать по разным таблицам (отдельно таблица с актерами, режиссерами, жанрами и т.д.). Плюс нужны будут связующие таблицы (какому фильму какие свойства).

Но что-то меня пугает выборка списка фильмов. Этож какой должен быть запрос, чтоб выдать и названия, и жанры, и режиссеров. Я только знаю — сделать пяти-этажный INNER JOIN, но он наверно будет очень тугим.

Наведите плз. на правильный ход мысли. Может есть полезные ссылки почитать?
  • Вопрос задан
  • 10197 просмотров
Пригласить эксперта
Ответы на вопрос 3
taliban
@taliban
php программист
Если данных много есть смысл разбить запрос на несколько.
Ответ написан
Комментировать
@IlVin
Да, так и живут…
В MySQL помогает жить функция GROUP_CONCAT(expr).
В других БД есть похожие функции.
Ответ написан
SELECT * FROM films as f
LEFT JOIN films_desc as fd in (fd.film_id=f.id)
LEFT JOIN films_rank as fr in (fr.film_id=f.id)
WHERE f.id = 1;

Вполне нормально должно работать.
Ответ написан
Ваш ответ на вопрос

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

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