mysql - SQL IMDB 网站查询查找出演至少 10 部电影的 Actor

标签 mysql sql actor movie

使用IMBD的ER图,我需要找到每个 Actor 活跃的时间段,通过列出 Actor 出演电影的最早和最近年份,但仅限于出演过的 Actor 至少 10 部电影。

我写了关于表演时期的部分,但至少要拍 10 部电影。我知道我应该使用 HAVING COUNT

到目前为止我的答案是:

SELECT r.actor_id, min(m.year), max(m.year) 
FROM roles r 
LEFT JOIN movies m ON r.movie_id = m.id 
GROUP BY r.actor_id

IMBD ER Diagram

最佳答案

尝试以下操作。正如我的 Barmar 所指出的,您不需要左连接。

SELECT r.actor_id, min(m.year), max(m.year) 
FROM roles r 
GROUP BY r.actor_id
Having count(*) >= 10

如果您必须更改角色的表结构以包含单个 Actor 执行多个角色的场景,那么您可能需要更改查询,如下所示:

SELECT r.actor_id, min(m.year), max(m.year) 
FROM roles r 
GROUP BY r.actor_id
Having count(distinct r.movie_id) >= 10

关于mysql - SQL IMDB 网站查询查找出演至少 10 部电影的 Actor ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51292008/

相关文章:

PHP/MySQL 生成表

mysql - 如何在mysql中配对日期行

php - 我无法在数据库中插入照片

sql - 使用 Oracle 进行 SELECT INTO

scala - 从 2.0 开始如何启动 Akka Actors?

mysql - 使用 SQL 条目进行数学运算

sql更新表使用案例

Sql根据列计算不同的值

scala - 在 Scala Actor 中访问共享资源的正确方法

java - 斯卡拉 : how to start an actor in array?