SQL Zoo 6.The JOIN operation

以下数据均来自SQL Zoo

1.Modify it to show the matchid and player name for all goals scored by Germany. To identify German players, check for: teamid = 'GER'.(它以显示德国所有进球的比赛和球员名字,识别德国球员)

sql 复制代码
SELECT matchid,player FROM goal where teamid = 'GER'

2.From the previous query you can see that Lars Bender's scored a goal in game 1012. Now we want to know what teams were playing in that match.(从之前的查询中你可以看到拉斯·本德在1012场比赛中进了一个球。现在我们想知道那场比赛是哪支球队.)

sql 复制代码
SELECT id,stadium,team1,team2
  FROM game where id = 1012

3.the player (from the goal) and stadium name (from the game table) for every goal scored.Modify it to show the player, teamid, stadium and mdate for every German goal.(每个进球的球员(来自进球)和球场名称(来自比赛表),修改它以显示球员,球队,球场和每个德国队进球的候选人)

sql 复制代码
SELECT player,teamid,stadium,mdate
  FROM game JOIN goal ON (id=matchid) where teamid = 'GER'

4.Show the team1, team2 and player for every goal scored by a player called Mario player LIKE 'Mario%'(显示team1, team2和球员的每一个进球被称为马里奥球员)

sql 复制代码
select team1,team2,player from game join 
goal on game.id = goal.matchid where player like 'Mario%'

5.Show player, teamid, coach , gtime for all goals scored in the first 10 minutes gtime<=10.(显示球员,球队,教练,gtime前10分钟内所有进球的gtime<=10)

sql 复制代码
select player,teamid,coach,gtime from goal 
join eteam on goal.teamid = eteam.id where gtime <=10

6.List the dates of the matches and the name of the team in which 'Fernando Santos' was the team1 coach.(请列出比赛日期和"费尔南多·桑托斯"担任教练的球队名称)

sql 复制代码
select mdate,teamname from game 
join eteam on game.team1 = eteam.id where coach = 'Fernando Santos'

7.List the player for every goal scored in a game where the stadium was 'National Stadium, Warsaw'(列出在比赛场地为"华沙国家体育场"的比赛中每个进球的球员)

sql 复制代码
select player from game 
join goal on game.id = goal.matchid where stadium = 'National Stadium, Warsaw'

8.Show the name of all players who scored a goal against Germany.(显示所有在对阵德国队的比赛中进球的球员的名字)

sql 复制代码
SELECT distinct player
  FROM game JOIN goal ON matchid = id 
    WHERE (team1='GER' or team2='GER') and teamid != 'GER'

9.Show teamname and the total number of goals scored.(显示球队名称和总进球数)

sql 复制代码
SELECT teamname,count(teamid)
  FROM eteam JOIN goal ON id=teamid
 group BY teamname

10.Show the stadium and the number of goals scored in each stadium.(显示体育场和每个体育场的进球数)

sql 复制代码
select stadium,count(matchid) from game 
join goal on game.id = goal.matchid group by stadium

11.For every match involving 'POL', show the matchid, date and the number of goals scored.(对于每一场涉及"POL"的比赛,显示比赛日期和进球数)

sql 复制代码
select matchid,mdate,count(*) from game 
join goal on id = matchid where team1 = 'POL' or team2='POL' group by matchid

12.For every match where 'GER' scored, show matchid, match date and the number of goals scored by 'GER'(对于每一场"GER"进球的比赛,显示比赛,比赛日期和"GER"进球的数量)

sql 复制代码
select matchid,mdate,count(teamid) from game 
join goal on id = matchid where teamid = 'GER' group by matchid

13.List every match with the goals scored by each team as shown. If it was a team1 goal then a 1 appears in score1, otherwise there is a 0. You could SUM this column to get a count of the goals scored by team1. Sort your result by mdate, matchid, team1 and team2.(列出每一场比赛,如果是team1的进球,则score1中显示1,否则显示0。您可以对这一列进行求和,以获得team1得分的总数。按候选人、配对、team1和team2对结果进行排序。)

sql 复制代码
SELECT mdate,
       team1,
       SUM(CASE WHEN teamid=team1 THEN 1 ELSE 0 END) score1,
       team2,
       SUM(CASE WHEN teamid=team2 THEN 1 ELSE 0 END) score2
FROM game 
LEFT JOIN goal 
ON matchid = id
GROUP BY mdate, matchid, team1, team2
相关推荐
tomcoding1 小时前
遇到一个ORA-01017错误,解决方法
数据库·oracle
ejinxian2 小时前
PolarDB ,MongoDB ,MySQL ,PostgreSQL ,Redis, OceanBase, Sql Server等数据库
数据库·mysql·mongodb
折哥的程序人生 · 物流技术专研8 小时前
Java面试85题图解版 · 特别篇:2026后端高频面试题复盘(算法底层逻辑+高并发架构设计全解析,附Java实战代码)
java·网络·数据库·算法·面试
AOwhisky8 小时前
Redis 学习笔记(第三期):持久化与主从复制
运维·数据库·redis·笔记·学习·云计算
李白的天不白8 小时前
数据库连接报错问题
数据库
一条泥憨鱼8 小时前
【Redis】数据类型和常用命令
java·数据库·redis·后端·缓存
爱喝水的鱼丶9 小时前
SAP-ABAP:SAP视图开发入门:四类标准视图的适用场景与创建步骤详解
服务器·数据库·性能优化·sap·abap
大白要努力!9 小时前
MySQL 8.0 + Navicat 完整操作指南
数据库·mysql
云絮.10 小时前
数据库操作
数据库·mysql·算法·oracle
小小工匠10 小时前
Redis 缓存替换策略:8 种淘汰策略与 LRU 实现剖析
数据库·redis·缓存