MySQL JOIN 与 SUM 和 3 个表

2024-07-01

我有下表(球员、赛事、得分)

我想要一份每个球员在 2012 年获得多少积分的列表。 我希望这份名单包含所有球员,即使有些球员在 2012 年还没有参加过比赛。

所以理论上它应该打印:

Ola Hansen     6  
Tove Svendson  0  
Kari Pettersen 0

I tried:

SELECT *, sum(Points) as Points FROM Players
LEFT OUTER JOIN Scores ON P_Id=Player
LEFT OUTER JOIN Events ON Event=E_Id AND Year='2012' 
GROUP by P_Id ORDER by Points DESC

但这计算了所有这些年的所有分数。


分数和事件需要内联before将它们外部连接到玩家。

我们可以使用子查询或括号来强制执行此特定连接“优先级”,但最好只使用 SQL 文本中的 JOIN 顺序,然后小心地将最后一个 JOIN“定向”到玩家(在本例中为 RIGHT)。

COALESCE 只是用于将 NULL 转换为 0。

SELECT
    P_Id, LastName, FirstName, COALESCE(SUM(Points), 0) TotalPoints
FROM
    Scores
    JOIN Events
        ON Event = E_Id AND Year = 2012
    RIGHT JOIN Players
        ON P_Id = Player
GROUP BY
    P_Id, LastName, FirstName
ORDER BY
    TotalPoints DESC;

这会产生:

P_ID    LASTNAME    FIRSTNAME   TOTALPOINTS
1       Hansen      Ola         6
2       Svendson    Tove        0
3       Pettersen   Kari        0

你可以在这个里面玩SQL小提琴 http://sqlfiddle.com/#!2/03622/38.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

MySQL JOIN 与 SUM 和 3 个表 的相关文章

  • LINQ 中的日期差异逻辑

    我尝试从两个不同的数据库表访问数据 然后使用 C 中的 LINQ 将它们连接到两个字段上 我相信我有一个逻辑合理的整体工作方法 我遇到的部分问题是 我在连接两个表之前过滤了它们的数据 因为这些表的数据太多 会导致崩溃 主要问题是 对于其中一
  • 如何配置 Spring boot 以使用两个数据库?

    我在用春季启动 2 X with 休眠5连接两个不同的 MySQL 数据库 Bar 和 Foo 在不同的服务器上 我试图列出一个实体的所有信息 自己的属性和 OneToMany and ManyToOne关系 来自 REST 控制器中的方法
  • 将 mysql 连接传递给 python 线程时管道损坏

    我正在尝试将 mysql 连接传递给 python 中的线程 如果我在工作类中进行 mysql 的初始化 则不会出现错误 但是 连接的成本可能很高 因此我尝试仅从调用者函数传递 mysql 连接 请参见下面的代码 但这一直抛出这个错误 20
  • MySQL:删除包含特定参数且早于一天的行[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我正在使用 mysql 为我的网站创建一个登录系统 它在基于订阅的系统上运行 如果参数 premium 等于 1 DAY 如果它早于一
  • 恢复 woocommerce 订单

    最近 我的服务器团队更换了我的数据库 他们将我们以前的数据库放入其中 因此 我们丢失了某一天 特定日期 的订单详细信息 现在 服务器团队提供包含丢失当天订单详细信息的备份 现在请告诉我如何恢复这些订单 我无法用给定的备份替换我们的数据库 因
  • 如何使用 DbSession 在 Yii2 中创建用户会话管理系统 [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 今天 当我想为我的网站创建用户个人资料页面并希望创建系统用户可以管理他在此系统中的活动会话时 需要 查看活动会话 浏览器和平台 查看当
  • MySQL“错误 1005 (HY000):无法创建表 'foo.#sql-12c_4' (errno: 150)”

    我正在努力在数据库中创建一些表foo 但每次我最终都会得到关于外键的 errno 150 首先 这是我创建表的代码 CREATE TABLE Clients client id CHAR 10 NOT NULL client name CH
  • 在 MySQL 数据库中存储大文件的更好方法?

    我有一个 PHP 脚本 您可以使用它上传非常大的文件 最大 500MB 并且该文件的内容存储在 MySQL 数据库中 目前我做这样的事情 mysql query INSERT INTO table VALUES uploadedfile f
  • 远程数据库的“com.mysql.jdbc.exceptions.jdbc4.CommunicationsException:通信链路故障”

    我尝试连接到远程 MySQL 数据库 但失败并收到此错误 com mysql jdbc exceptions jdbc4 CommunicationsException Communications link failure 困惑的是 当我
  • 通过 Eloquent 在 laravel 中找到具有相同值的两列?

    我正在开发一个项目 其中有一个表市场 其中有一个 Buyer id 列和一个 seller id 列 当卖家将商品投放市场时 seller id 和 buyer id 相同 这意味着该产品现在正在销售 销售后 buyer id 更改为购买该
  • 比在配置文件中以纯文本形式存储 mysql 密码更好的方法吗?

    许多 PHP 程序要求用户将 mysql 密码以纯文本 字符串或常量 形式存储在应用程序根目录的配置文件中 这一直困扰着我 这么多年过去了 还有更好的方法吗 到目前为止 我已经提出了两个最小的安全提升方案 使用 htaccess 中的规则使
  • MySQL:ALTER IGNORE TABLE ADD UNIQUE,什么会被截断?

    我有一个包含 4 列的表 ID 类型 所有者 描述 ID 是 AUTO INCRMENT PRIMARY KEY 现在我想 ALTER IGNORE TABLE my table ADD UNIQUE type owner 当然 我几乎没有
  • 选择两列之和的最大值

    我有一个表格比较 如果我跑 SELECT comparisonID stu1Vers stu2Vers stu1 stu2 from comparisons WHERE stu1 stu2 and assignmentid 9 我得到类似的
  • MySQL/SQL 检索文本字段的前 40 个字符?

    如何从 mysql 数据库表中检索文本字段 但不是整个文本 只是少数 40 个左右的字符 这可以在 sql 中完成还是需要使用 php 来完成 基本上我想做的是显示前 x 个字符 然后让用户单击它来查看完整内容 SELECT LEFT fi
  • 查询每组前 N 个代码适用于 MySQL,但适用于 MariaDB,结果不同

    我有一个 SQL 查询 它提取每组的最新 3 条记录 MySQL 的查询结果与 MariaDB 不同 该查询在下面的sqlfiddle中实现 http sqlfiddle com 9 c09fe 2 http sqlfiddle com 9
  • 如何将此查询编写为完整联接而不是联合左/右联接?

    这是代码 显示输入和所需的输出 基本上 我正在尝试自我加入 以将经纪人声明的结果与我的内部记录相匹配 所以左边的列是经纪人的列表 右边是我的列表 如果经纪人有仓位 而我没有 则右侧为 NULL 如果我有仓位而经纪商没有 则左侧为 NULL
  • 指定的密钥太长;最大密钥长度为 1000 字节

    通过 mySQL 转储导入img Joomla 1 5 数据库 但出现错误 1071 指定的密钥太长 最大密钥长度为 1000 字节 罪魁祸首的sql语句是 CREATE TABLE jos core acl aro id INT 11 N
  • SQL自连接返回特定行

    跳到底部以避免冗长的解释 Ok so 我正在公司内部网上工作 用于管理客户工作 作业由元素组成 示例元素可能是 构建六页网站 或 设计徽标 每个元素都由一系列角色时间组成 因此 构建一个六页网站 可能包括四个小时的 开发人员 时间和两个小时
  • 在MySQL中保存使用触发器删除记录的用户的USER_ID

    我正在尝试设置一系列历史记录触发器 以通过触发器自动收集给定表的历史记录 我想使用触发器 因为这可以保证我捕获所有更改 无论是否有人忘记将其保存在应用程序中 我的问题是我有这个触发器 CREATE TRIGGER db delete his
  • JPA 多对多关系创建两个联接表

    我正在尝试在之间创建多对多关系User and FileObject假设用户可以访问许多文件对象的类 并且文件对象可以由许多用户和一对多关系访问 因为一个用户可以拥有许多文件 但一个文件只能由一个用户拥有 这是我的代码 Entity pub

随机推荐

  • 尽管 GPG 密钥 ID 匹配,但 GitHub 提交未经过验证

    在命令行上 我使用生成了一个新的密钥对github api signature 包的 https www npmjs com package github api signature generateKeyPair函数 提供我的 GitHu
  • NUnit 加载失败,使用版本 3.11

    当我降低到 3 10 时 它可以工作 但不知道为什么它最近停止了 我尝试的一切都不起作用 这就是输出中显示的内容 我尝试了网上找到的许多选项 但似乎没有任何帮助 13 03 2019 17 10 44 Informational Run t
  • PHP 检查 NULL

    这是下面的代码 query mysql query SELECT FROM tablex if result mysql fetch array query if result column NULL print
  • 查找表格单元格的值

    tbody tbody
  • SQLite 表不保存

    我有一个关于 SQLite 的疑问 我在 Mac OS X 上运行它 我创建了一个表 添加 删除了行 列值 一切正常 但是当我关闭终端并退出并再次重新打开终端时 我之前创建的表不再存在 这是像仅会话这样的正常行为还是我在某个地方出错了 您是
  • 在android中的广播接收器中检测日期变化事件

    我想在 android 应用程序中实现一个功能 即使我的应用程序没有运行 只要日期发生变化 上午 00 00 该功能也会执行特定的代码 我可能迟到了回答这个问题 但我个人也面临着同样的问题 对于日期更改 您可以简单地使用具有操作 andro
  • “无法在查询内执行DML操作”的解决方案?

    我正在使用数据分析工具 我的要求是接受用户的值 将其作为参数传递并将其存储在表中 非常简单 所以我坐下来写这篇文章 create or replace procedure complex datainput in VARCHAR2 is b
  • 更喜欢迭代器而不是指针?

    这个问题 https stackoverflow com q 29007753 2642059是一个有评论的问题here https stackoverflow com questions 28985883 pass a string re
  • Hyperopt:定义依赖于其他参数的参数

    我在用python包裹hyperopt我有一个参数a这需要大于参数b 例如 我希望我的参数空间是这样的 from hyperopt import hp space b hp uniform 0 0 5 a hp uniform b 0 5
  • TLB 未命中与缓存未命中?

    有人可以解释一下 TLB 翻译后备缓冲区 未命中和缓存未命中之间的区别吗 我相信我发现 TLB 指的是某种虚拟内存地址 但我不太清楚这实际上意味着什么 我理解当一块内存 缓存行的大小 加载到 L3 缓存中时会导致缓存未命中 并且如果当前缓存
  • 将函数添加到 Matlab 路径

    我正在尝试添加strsplit函数到我的 MATLAB 路径 但我不知道该怎么做 Link 分割函数 http www mathworks com matlabcentral fileexchange 4615 split delimite
  • 在 MATLAB 中标记图像上的终止和分叉手指细节点

    我有一个关于指纹匹配的项目 但我陷入了在图像上标记终止点和分叉点的困境 我已经存储了像素的坐标 我该怎么做呢 假设您的图像存储在名为的灰度图像中im 并且您的终止点和分叉点存储在二维矩阵中 其中第一列表示行 第二列表示每个点的列 您可以轻松
  • iPhone 上的 COMET(服务器推送到客户端)[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我正在寻求从我的服务器到我的 iPhone 应用程序建立某种套接字 COMET 类型的功能 本质上 任何时候用户设法在服务器上设置任意
  • 如何使用 PySpark 执行嵌套的 for-each 循环

    想象一个大型数据集 gt 40GB parquet 文件 包含数千个变量的值观察作为三元组 变量 时间戳 值 现在考虑一个查询 您只对 500 个变量的子集感兴趣 您想要检索特定时间点 观察窗口或时间范围 的这些变量的观察结果 值 gt 时
  • MVVM 和 UniformGrid 数据绑定

    我正在尝试使用一些矩形来设置 WPF 图表背面的样式 我正在使用 MVVM 并且需要统一大小的矩形 当通过 Xaml 定义时 这适用于固定的 BucketCount 4
  • 如何对数据库架构进行版本控制?

    是否有办法 廉价或 FLOSS 对 SQL Server 2008 DB 架构进行版本控制 这是杰夫 阿特伍德 Jeff Atwood 写的一篇不错的文章数据库版本控制 http www codinghorror com blog 2006
  • 如何使用Python代码理解动态作用域?

    我是一名具有 Python 背景的程序员 通常使用词法作用域 我想了解动态作用域 我在网上查了一下 还是不太明白 例如 我读过这一页 https msujaws wordpress com 2011 05 03 static vs dyna
  • 伪元素:after和溢出隐藏

    我有这个标记 label required after content color red
  • 为什么空语句合法?

    int main int var 0 Typo which compiles just fine 在 C 和 C 中 这是允许的 因为表达式语句 https eel is c draft stmt expr nt expression st
  • MySQL JOIN 与 SUM 和 3 个表

    我有下表 球员 赛事 得分 我想要一份每个球员在 2012 年获得多少积分的列表 我希望这份名单包含所有球员 即使有些球员在 2012 年还没有参加过比赛 所以理论上它应该打印 Ola Hansen 6 Tove Svendson 0 Ka