无法弄清楚如何选择分类为特定类型的电影

时间:2013-08-01 19:06:46

标签: mysql select

表格结构:

  

表格MOVIES

     
    标题中间     1遗忘
    2钢铁侠3
    3牛仔&外星人

  
     

表格GENRES

     
    

gid类型
    1行动
    2科幻     3西方     4剧情

  
     

表MOVIEGENRES

     
    

mid gid
    1 1
    1 2
    1 4
    2 1
    2 2
    3 1
    3 2
    3 3

  

问题: 现在我试图只选择那些同时具有“西方”和“科幻”类型的电影,例如牛仔&外星人有西方和科幻类型。

我尝试过以下查询,但它会返回所有具有任何指定类型的电影

SELECT m.title FROM movies m,moviegenres mg WHERE m.mid = mg.mid AND mg.gid in (2,3);

2 个答案:

答案 0 :(得分:0)

通常情况如下:

SELECT mid, COUNT(*) AS matches FROM moviegenres WHERE gid IN (4,5) HAVING matches=2

您将IN内容调整为N个条目,并matches=N

答案 1 :(得分:0)

尝试这种方法看看会发生什么。

  

从MOVIEGENRES选择MOVIES.title作为内部联接GENRES为b ON a.mid   = b.mid INNER JOIN MOVIEGENRES as c ON a.gid = c.gid GROUP BY MOVIEGENRES.title