Fos*_*for 2 mysql sql relational-division
我有一个movies带有两个外键(movie_id,genre_id)的table().当然,这两个领域都不是唯一的.
所以我的问题如下,我想选择一部有两种或两种以上特定类型的电影.所以我想做一些事情:
SELECT movie_id
FROM movies
WHERE genre_id = 1 AND genre_id = 2 AND genre_id = 3
Run Code Online (Sandbox Code Playgroud)
关于如何做的任何想法?谢谢!
这是一个Relational Division问题.
SELECT movie_id
FROM movies
WHERE genre_id IN (1, 2, 3) -- <<== list of genre_id
GROUP BY movie_id
HAVING COUNT(*) = 3 -- <<== count of genre_id
Run Code Online (Sandbox Code Playgroud)
如果genre_id并非每个都是唯一的movie_id,DISTINCT则需要一个关键字来过滤唯一的关键字.
SELECT movie_id
FROM movies
WHERE genre_id IN (1, 2, 3) -- <<== list of genre_id
GROUP BY movie_id
HAVING COUNT(DISTINCT genre_id) = 3 -- <<== count of genre_id
Run Code Online (Sandbox Code Playgroud)