所以我有两个具有多个关系的表
表中的相关信息
人员:
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个结果即可,这是他/她所播放电影的发行中年龄最大的演员。
答案 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