Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/268.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP至少匹配两种类型(mysql)_Php_Mysql_Match - Fatal编程技术网

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

PHP至少匹配两种类型(mysql),php,mysql,match,Php,Mysql,Match,我正在创建一个简单的电影数据库,其中有三个表: 电影 带电影id、电影名称、电影年份 体裁 带有流派id、流派名称 电影类型(多对多协会) 用idgenre,idmovie 我把电影和流派联系起来,比如: Movie id Genre id 1 1 1 2 2 4 2 1 因此,一部电影可以有更多的类型。现在,在一个.php页面中,我检索一个电影id并打印关于这部电影的信息

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

电影

带电影id、电影名称、电影年份


体裁

带有流派id、流派名称


电影类型(多对多协会)

用idgenre,idmovie

我把电影和流派联系起来,比如:

Movie id    Genre id
    1           1
    1           2
    2           4
    2           1
因此,一部电影可以有更多的类型。现在,在一个.php页面中,我检索一个电影id并打印关于这部电影的信息,我还想只打印至少匹配两种类型的电影,如:

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

现在php脚本应该打印所有至少匹配两种类型的电影,所以如果有一部电影有两种类型:戏剧、冒险,那么应该打印

有人能帮我做这件事吗?php查询应该是什么?
提前感谢:D

在where子句中放置另一个查询,即where(select COUNT(*)…)>1非常感谢,我也使用了JOIN和COUNT,但方式不同,这很有效,现在我了解了如何使用JOIN。。。再次感谢你:D
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;