Я не могу понять, как сделать запрос из нескольких таблиц, используя таблицу «связывания», чтобы указать на нее.У меня есть таблица для «Шоу» и таблица для «Жанры», у меня есть «таблица ссылок», в которой у меня есть show_id
и genre_id
.Который подключается к id
в жанрах и id
в шоу.Моя проблема в том, что я не знаю, возможно ли собрать таблицу name
из жанров в том же самом списке, где я запрашиваю шоу.
Прямо сейчас, это то, что я делаю:
$query = $DB->query('SELECT * FROM shows');
while ($show = $query->fetch_assoc()) {
$get_genres = $DB->query('SELECT genre_id, show_id FROM shows_genres WHERE show_id = ' . $show['id']);
$allgenres = '';
while ($genre = $get_genres->fetch_assoc()) {
$genre_name = $DB->query('SELECT id, name FROM genres WHERE id = ' . $genre['genre_id'])->fetch_assoc();
$allgenres .= $genre_name['name'];
}
И вполне возможно, что в «связующей таблице» шоу имеет более одного жанра, несколько строк genre_id указывают на один и тот же show_id.
Грязно, не правда ли??Есть ли как выбрать все это из первого запроса?
Структура таблиц выглядит следующим образом:
SHOWS: id, title, summary
SHOWS_GENRES: show_id, genre_id
GENRES: id, name, description