【发布时间】:2020-04-23 00:29:03
【问题描述】:
一个看似通用的 SQL 查询真的让我一无所知。 情况就是这样。 我有 3 个通用表格(此处为简化版):
Movie
id | title
-----------------------
1 | Evil Dead
-----------------------
2 | Bohemian Rhapsody
....
Genre
id | title
-----------------------
1 | Horror
-----------------------
2 | Comedy
....
Rating
id | title
-----------------------
1 | PG-13
-----------------------
2 | R
....
还有 2 个多对多表来连接它们:
Movie_Genre
movie_id | genre_id
Movie_Rating
movie_id | rating_id
最初的挑战是编写一个查询,允许我获取属于多种类型的电影(例如恐怖喜剧或科幻动作)。
谢天谢地,我能在这里找到这个解决方案 MySQL: Select records where joined table matches ALL values
但是,获取属于多个多对多表的记录的正确选项是什么?例如。 R级恐怖喜剧。有没有办法在没有子查询(或只有一个)的情况下这样做?
【问题讨论】:
-
为什么会有两个多对多表?
标签: mysql sql join subquery having-clause