MySQL独家获取动作片

时间:2017-11-24 10:32:27

标签: mysql sql select inner-join

我有两张桌子,导演和电影,他们是由dirnr链接的。

我想选择所有专门制作动作片的导演。

这就是我现在所拥有的:

SELECT distinct `name`
FROM`director`
INNER JOIN `movie` ON movie.dirnr = director.dirnr
WHERE movie.genre = 'action' 

编辑:这会让所有制作过动作片的导演都退回,我希望它能让那些拥有独家制作动作片但没有其他流派的导演返回。

1 个答案:

答案 0 :(得分:0)

您的查询只会列出制作至少一部动作片的导演。要测试排他性,您可以这样做:

SELECT distinct `name`
FROM`director`
INNER JOIN `movie` ON movie.dirnr = director.dirnr
WHERE movie.genre = 'action' 
AND NOT EXISTS (
    SELECT 1 
    FROM movie m 
    WHERE m.dirnr = director.dirnr 
    AND m.genre != 'action'
)