PHP соответствует как минимум двум жанрам (mysql)

Я создаю простую базу данных фильмов, где у меня есть три таблицы:

кино

с movie_id, movie_name, movie_year


жанр

с genre_id, genre_name


movie_genre (для многих ко многим ассоциациям)

с idgenre, idmovie

Я сделал ассоциации между фильмами и жанрами, как:

Movie id    Genre id
1           1
1           2
2           4
2           1

Таким образом, фильм может иметь больше жанров. Теперь на странице single.php, где я получаю идентификатор фильма и печатаю информацию об этом фильме, я также хочу печатать только фильмы, которые соответствуют как минимум двум жанрам, например:

Идентификатор фильма = 1 ==> (напр. Титаник, Жанры: Драма, Романтика, Приключения)

Теперь скрипт php должен печатать все фильмы, которые соответствуют как минимум двум жанрам, поэтому, если есть фильм с жанрами: драма, приключения, его следует распечатать …

Может ли кто-нибудь помочь мне в этом? Каким должен быть php-запрос?
Заранее спасибо

0

Решение

SELECT
movie_id, movie_name, movie_year, GROUP_CONCAT(DISTINCT genre.genre_name)
FROM movies
JOIN movie_genre
ON movie_genre.idmovie = movies.movie_id
JOIN genre
ON genre.genre_id = movie_genre.idgenre
AND genre.genre_name IN ('Drama','Adventure')
GROUP BY movie_id
HAVING COUNT(DISTINCT movie_genre.idgenre) >= 2;
2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]