Нужно найти возраст актера, который был самым старшим на момент выхода фильма, в 1 результате - PullRequest
3 голосов
/ 29 марта 2019

Итак, у меня есть две таблицы с несколькими связями

Соответствующая информация из таблиц

Персона:

Id |   Name |    Birthyear

Фильм:

ID |    Name |    Releaseyear

Movie_Actor:

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 ]

2 голосов
/ 29 марта 2019

предел использования 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 голос
/ 29 марта 2019

Вы также сможете использовать функцию агрегации 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...