Упражнения на футбол по футболу База данных: найдите игрока, который забил последний гол за сборную Португалии против Венгрии
База данных по футболу SQL: Подзапросы Упражнение-8 с решением
8. Напишите запрос в SQL, чтобы найти игрока, который забил последний гол за Португалию против Венгрии.
Пример таблицы: soccer_country
Пример таблицы: goal_details
Пример таблицы: match_details
Пример таблицы: player_mast
Пример решения:
Код SQL:
SELECT player_name
FROM player_mast
WHERE player_id=(
SELECT player_id
FROM goal_details
where match_no=(SELECT match_no FROM match_details
WHERE team_id=(
SELECT country_id FROM soccer_country
WHERE country_name='Hungary')
or team_id=(SELECT country_id FROM soccer_country
WHERE country_name='Portugal')
GROUP BY match_no HAVING COUNT(DISTINCT team_id)=2)
AND team_id=(SELECT team_id
FROM soccer_country a, soccer_team b
WHERE a.country_id=b.team_id AND country_name='Portugal')
AND goal_time=(
SELECT max(goal_time)
FROM goal_details
WHERE match_no=(SELECT match_no FROM match_details
WHERE team_id=(
SELECT country_id FROM soccer_country
WHERE country_name='Hungary')
or team_id=(SELECT country_id FROM soccer_country
WHERE country_name='Portugal')
GROUP BY match_no HAVING COUNT(DISTINCT team_id)=2) AND team_id=(
SELECT team_id
FROM soccer_country a, soccer_team b
WHERE a.country_id=b.team_id AND country_name='Portugal'))
);
Пример вывода:
имя игрока -------------------- Криштиану Роналду (1 ряд)
Практика онлайн
Пример базы данных: футбол
Визуализация запроса:
Продолжительность:
Ряды:
Стоимость:
Есть другой способ решить это решение? Внесите свой код (и комментарии) через Disqus.
Предыдущий: Напишите запрос в SQL, чтобы найти команды, которые сыграли матч с самой высокой аудиторией.
Далее: напишите запрос в SQL, чтобы найти второе по величине время остановки, которое было добавлено во второй половине игры.
Каков уровень сложности этого упражнения?
Новый контент: Composer: менеджер зависимостей для PHP , R программирования