我有两张桌子,导演和电影,他们是由dirnr链接的。
我想选择所有专门制作动作片的导演。
这就是我现在所拥有的:
SELECT distinct `name`
FROM`director`
INNER JOIN `movie` ON movie.dirnr = director.dirnr
WHERE movie.genre = 'action'
编辑:这会让所有制作过动作片的导演都退回,我希望它能让那些拥有独家制作动作片但没有其他流派的导演返回。
答案 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'
)