SQL exercises on soccer Database: Find the player who scored the last goal for Portugal against Hungary
SQL soccer Database: Subqueries Exercise-8 with Solution
8. From the following tables, write a SQL query to find the player who scored the last goal for Portugal against Hungary. Return player name.
Sample table: soccer_country
Sample table: goal_details
Sample table: match_details
Sample table: player_mast
Sample Solution:
SQL Code:
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'))
);
Sample Output:
player_name -------------------- Cristiano Ronaldo (1 row)
Practice Online
Sample Database: soccer
Query Visualization:
Duration:
Rows:
Cost:
Have another way to solve this solution? Contribute your code (and comments) through Disqus.
Previous: From the following tables, write a SQL query to find the highest audience match. Return country name of the teams.
Next: From the following table, write a SQL query to find the second-highest stoppage time, which had been added, in the second half of play.
What is the difficulty level of this exercise?
Test your Programming skills with w3resource's quiz.
SQL: Tips of the Day
SQL Server SELECT into existing table.
INSERT INTO dbo.TABLETWO SELECT col1, col2 FROM dbo.TABLEONE WHERE col3 LIKE @search_key
This assumes there's only two columns in dbo.TABLETWO - you need to specify the columns otherwise:
INSERT INTO dbo.TABLETWO (col1, col2) SELECT col1, col2 FROM dbo.TABLEONE WHERE col3 LIKE @search_key
Database: SQL Server
Ref: https://bit.ly/3y6tpA3
- New Content published on w3resource:
- HTML-CSS Practical: Exercises, Practice, Solution
- Java Regular Expression: Exercises, Practice, Solution
- Scala Programming Exercises, Practice, Solution
- Python Itertools exercises
- Python Numpy exercises
- Python GeoPy Package exercises
- Python Pandas exercises
- Python nltk exercises
- Python BeautifulSoup exercises
- Form Template
- Composer - PHP Package Manager
- PHPUnit - PHP Testing
- Laravel - PHP Framework
- Angular - JavaScript Framework
- Vue - JavaScript Framework
- Jest - JavaScript Testing Framework