Решение примера 4 на запрос SQL с текущей датой
Пример 4. Определить самого востребованного актёра за последние 5 лет.
Оператор JOIN использовать 2 раза. Использовать CURDATE(), LIMIT 1.
Запрос будет следующим:
SELECT
act.fname, act.lname, COUNT(tea.play_id)
FROM play pl JOIN team tea
ON tea.play_id=pl.play_id
JOIN
actor act
ON act.actor_id=tea.actor_id
WHERE TIMESTAMPDIFF(YEAR, pl.premieredate, CURDATE()) < 5
GROUP BY act.fname, act.lname
ORDER BY COUNT(tea.play_id)
DESC LIMIT 1
В результирующей таблице будут поля FNAME, LNAME, COUNT. При помощи первого JOIN данные таблиц TEAM и PLAY пересекаются по условию Play_ID. При помощи второго JOIN данные таблиц ACTOR и TEAM пересекаются по условию Actor_ID. Следует заметить, что при составлении запроса для вычисления разницы между моментами времени была использована функция TIMESTAMPDIFF(), которая присутствует в MySQL, но которой нет во многих других диалектах SQL. В них чаще всего используется фукнция DATEFIFF(), а для задания интервала вместо YEAR используются другие слова.