MySQL 连接运动队的两个查询

标签 mysql sql

我正在尝试显示球队列表及其进球数(并按从大到小排序),但无法将所有查询连接在一起

表 1:团队

teamid teamname
  1      team1
  2      team2
  3      team3

表 2:结果

 id gameid teamid gf
  1    1     1    5
  2    2     1    3
  3    1     2    0
  4    2     2    2
  5    3     3    0

我想要实现的目标

  1. Team1 8
  2. Team2 2
  3. Team3 0

获取所有团队的列表

SELECT team.teamid, team.teamname
 FROM teams team

获取 1 支球队的进球总数

SELECT COALESCE( SUM( gf ) , 0 ) goalsfor
FROM results
WHERE teamid = 1

连接查询

SELECT team.teamid,
       team.teamname,
       COALESCE(res.gf, 0) goalsfor
FROM teams team
LEFT JOIN
  (SELECT COALESCE(SUM(res.gf), 0) goalsfor
   FROM results res
   GROUP BY teamid) res ON team.teamid = res.teamid
ORDER BY goalsfor DESC

整天都在加入查询

最佳答案

SELECT teams.teamname, res.goals FROM teams JOIN (
    SELECT COALESCE(SUM(results.gf),0) AS goals, results.teamid AS teamid FROM results
    group by results.teamid) res
ON teams.teamid=res.teamid ORDER BY goals DESC;

关于MySQL 连接运动队的两个查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21792937/

相关文章:

MySQL语法错误,但一切看起来都是正确的

java - 我们可以为单个数据库连接设置多个并行事务吗?

mysql - 当列上存在键时,为什么索引不用于 Group by 和/或 Join

MySql - x 列中时间 'hhh:mm:ss' 的格式错误

mysql - 每个用户 ID 仅获取一次所有行的总和

php - SQL 在同一个表中创建行的副本

sql - FROM 更改检索数据后添加未使用的表

php - Mysql BETWEEN 子句被忽略。没有语法错误

php - 使用 MySQL/Jquery 保存实时通知

PHP mysql_fetch_array 不起作用?