PHP匹配至少两种类型(mysql)

时间:2014-11-06 16:51:20

标签: php mysql match

我正在创建一个简单的电影数据库,其中我有三个表:

电影

  

with 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页面中,我检索电影ID并打印有关此电影的信息,我还想只打印至少匹配两种类型的电影,如:

  

电影ID = 1 ==> (例如泰坦尼克号,类型:戏剧,浪漫,冒险)

现在php脚本应该打印所有匹配至少2种类型的电影,所以如果有一部电影有流派:剧情,冒险应该打印......

有人可以帮我这么做吗?什么应该是PHP查询? 提前致谢:D

1 个答案:

答案 0 :(得分:2)

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;