需要在1个结果中找到电影发行中年龄最大的演员的年龄

时间:2019-03-29 10:21:08

标签: mysql sql

所以我有两个具有多个关系的表

表中的相关信息

人员:

Id |   Name |    Birthyear

电影:

ID |    Name |    Releaseyear

电影演员:

MovieID |    ActorID

查询,我尝试过:

SELECT movie.name AS Movie, person.name, movie.releaseyear - person.birthyear AS Age
FROM movie_actor
INNER JOIN movie
ON movie.id = movie_actor.movieid
INNER JOIN person
ON person.id = movie_actor.actorID

这会向我显示电影和演员的姓名,以及电影上映年份的演员年龄。但是,我只需要显示1个结果即可,这是他/她所播放电影的发行中年龄最大的演员。

2 个答案:

答案 0 :(得分:2)

使用限制1

SELECT 
     movie.name AS Movie, 
     person.name, 
     movie.releaseyear - person.birthyear AS Age
FROM movie_actor 
INNER JOIN movie ON movie.id = movie_actor.movieid 
INNER JOIN person ON person.id = movie_actor.actorID
order by age desc
limit 1

答案 1 :(得分:1)

您应该能够使用聚合函数MAX来限制并获得最大的年龄差异,

SELECT 
     movie.name AS Movie, 
     person.name, 
     MAX(movie.releaseyear - person.birthyear) AS Age
FROM movie_actor 
INNER JOIN movie ON movie.id = movie_actor.movieid 
INNER JOIN person ON person.id = movie_actor.actorID
group by Movie,person.name