在 mysql 中使用 SUM 进行多个连接

2023-12-26

我一直在寻找解决方案,有很多类似的问题,但没有一个有任何正确的答案可以帮助我解决问题。

首先,我的问题/问题:

  1. 我想对多重连接查询中的某些列进行求和和计数
  2. 多重连接是不可能的吗?我必须筑巢吗SELECT查询?

下面是我的数据库的 SQL 转储以及示例数据:http://pastie.org/private/vq7qkfer5mwyraudb5dh0a http://pastie.org/private/vq7qkfer5mwyraudb5dh0a

这是我认为可以解决问题的查询:

SELECT firstname, lastname, sum(goal.goal), sum(assist.assist), sum(gw.gw), sum(win.win), count(played.idplayer) FROM player
LEFT JOIN goal USING (idplayer)
LEFT JOIN assist USING (idplayer)
LEFT JOIN gw USING (idplayer)
LEFT JOIN win USING (idplayer)
LEFT JOIN played USING (idplayer)
GROUP BY idplayer

我希望生成一个表格,其中目标、助攻、gw、胜利和比赛的列是该列中每一行的总和/计数,如下所示:(带有提供的示例数据)

+-----------+----------+------+--------+----+-----+--------+
| firstname | lastname | goal | assist | gw | win | played |
+-----------+----------+------+--------+----+-----+--------+
| Gandalf   | The White|   10 |      6 |  1 |   1 |      2 |
| Frodo     | Baggins  |   16 |      2 |  1 |   2 |      2 |
| Bilbo     | Baggins  |    7 |      3 |  0 |   0 |      2 |
+-----------+----------+------+--------+----+-----+--------+

那么,再次迭代上述问题,是否可以通过一个查询和多个联接来实现这一点?

如果您提供解决方案/疑问,请解释一下!我是正确的关系数据库的新手,在这个项目之前我从未使用过联接。除非必要,如果您避免使用别名,我也将不胜感激。

我已经运行了上面的查询,没有求和和分组,并且我为我执行的每列得到了一组行SELECT上,我怀疑然后将其相乘或相加,但我的印象是分组和/或做sum(TABLE.COLUMN)会解决这个问题。

另一件事是,我认为,做一个SELECT DISTINCT或任何其他DISTINCT操作将不起作用,因为这会遗漏一些(“重复”)结果。

附言。如果重要的话,我的开发机器是 WAMP,但发布将在 ubuntu/apache/mysql/php 上。


要了解为什么您没有得到预期的答案,请查看以下查询:

SELECT * FROM player LEFT JOIN goal USING (idplayer)

正如您所看到的,左侧的行与右侧的匹配行重复。每次连接都会重复该过程。这是您查询的原始数据:

SELECT * FROM player
LEFT JOIN goal USING (idplayer)
LEFT JOIN assist USING (idplayer)
LEFT JOIN gw USING (idplayer)
LEFT JOIN win USING (idplayer)
LEFT JOIN played USING (idplayer)

然后将这些重复值用于 SUM 计算。在连接行之前需要计算 SUM:

SELECT firstname, lastname, goals, assists, gws, wins, games_played
FROM player
INNER JOIN 
  (SELECT idplayer, SUM(goal) AS goals FROM goal GROUP BY idplayer) a
  USING (idplayer)
INNER JOIN
  (SELECT idplayer, SUM(assist) AS assists FROM assist GROUP BY idplayer) b
  USING (idplayer)
INNER JOIN
  (SELECT idplayer, SUM(gw) AS gws FROM gw GROUP BY idplayer) c
  USING (idplayer)
INNER JOIN
  (SELECT idplayer, SUM(win) AS wins FROM win GROUP BY idplayer) d
  USING (idplayer)
INNER JOIN
  (SELECT idplayer, COUNT(*) AS games_played FROM played GROUP BY idplayer) e
  USING (idplayer)

SQLFiddle http://sqlfiddle.com/#!2/49864/13

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

在 mysql 中使用 SUM 进行多个连接 的相关文章

  • 如何使用Hibernate从Mysql获取最后一条记录?

    List
  • 从 android 发送查询到数据库

    我在 Android 上有一个体育运动列表视图 有没有办法将带有所选选项的 MySQL 查询发送到remote同一张表中包含有关该运动的更多信息的数据库 就像 从桌子上选择足球 提前致谢 扎克 Android 的常见数据库类型是 sqlit
  • Azure:用户登录失败

    我做了什么 我在 Azure 中添加了资源组 添加了带有先前资源组的 Web 服务 添加了带有先前资源组的 SQL Server 数据库 从此数据库检索生成的连接字符串并在此处提供用户名和密码 将此连接字符串添加到Web服务中的应用程序设置
  • 如何从 MySQL .frm 恢复数据?

    我的所有数据都在 MySQL frm 文件中 我怎样才能恢复数据 我不想恢复所有这些 只想恢复一些记录和表格 所以我需要对它们进行转储 据我所见 只有 frm 文件 没有 myd 文件 但是 有 ibdata1 文件 我该如何恢复 我成功了
  • 如何打开sqlite数据库并将其转换为pandas dataframe

    我已经下载了一些数据作为 sqlite 数据库 data db 我想在 python 中打开这个数据库 然后将其转换为 pandas 数据框 这是到目前为止我所做的 import sqlite3 import pandas dat sqli
  • Firestore 每秒向一个集合写入 500 多次以上

    Firestore 的限制为每秒 500 次写入 to 一个集合 其中文档包含顺序值 索引字段 https cloud google com firestore quotas writes and transactions https cl
  • CakePHP:无法访问 MySQL 数据库

    我是 CakePHP 的新手 刚刚完成配置过程 但很困惑为什么 Cake 无法访问我的 MySQL 数据库 Cake 信息页面显示我的 tmp 目录是可写的 FileEngine 正在用于缓存 不知道这意味着什么 并且我的数据库配置文件存在
  • Laravel 按特定值对结果进行排序

    我有这行从数据库获取结果的代码 clanMembers gt User find Auth user gt clan id gt where clan id Auth user gt clan id gt orderBy username
  • django在服务器上同步数据库时出错

    我有一个完整运行的区域设置 django 应用程序 但我在迁移到 site5 服务器时遇到了麻烦 当我启动 django 时syncdb命令 我所有模型的表都已创建 但是然后 我猜当它创建关系表时 我收到以下错误 mysql excepti
  • mysql 触发器与 php 脚本

    我有下一个 mysql 触发器 DELIMITER CREATE TRIGGER Test Insert BEFORE INSERT ON sat clientLocation FOR EACH ROW BEGIN DECLARE cmd
  • 在 SQL 中进行联合或单独查询然后使用 php array_merge 是否更好?

    我有一个包含 4 个 UNIONS 和 4 个 LEFT JOINS 的 SQL 查询 它的布局如下 SELECT FROM table1 LEFT JOIN other table1 UNION SELECT FROM table2 LE
  • 如何确定c3p0 max_statements

    我想知道如何正确确定 c3p0 max statements 使用什么值 我经历过一些缓存死锁 这似乎指向我的 max statements 配置 基于我读过的所有 SO 问答 我正在使用 mysql 当我进行一些有 4 个活动线程的多线程
  • 我想在 Red Hat Linux 服务器中执行 .ps1 powershell 脚本

    我有一个在窗口中执行的 ps1 powershell 脚本 但我的整个数据都在 Linux 服务器中 有什么可能的方法可以让我在红帽服务器中执行 powershell 脚本 powershell脚本是 Clear Host path D D
  • 检索MySQL中特定日期范围内发生的所有记录

    我有一个包含多个合同的表 每个合同都有一个开始日期和一个结束日期 如下所示 ID Contract Name Start Date End Date 1 Joe Bloggs 2012 01 01 2012 02 05 2 John Smi
  • 如何调试 MySQL 存储过程?

    我当前的调试存储过程的过程非常简单 我创建一个名为 debug 的表 在存储过程运行时从其中插入变量值 这允许我查看脚本中给定点的任何变量的值 但是有没有更好的方法来调试 MySQL 存储过程 下列debug msg可以调用过程来简单地将调
  • 合并多维数组并对在另一列中共享公共值的列值求和

    我有 3 个数组用于存储帖子 评论和点赞 这些是 JSON 字符串 comments JSON 存储用户和评论点 comments user 5 points 12 user 2 points 1 user 3 points 1 likes
  • PyInstaller,规范文件,导入错误:没有名为“blah”的模块

    我正在尝试通过构建 python 脚本py安装程序 http www pyinstaller org 我使用以下命令来配置 生成规范文件并构建 wget pyinstaller zip extracted it python Configu
  • 非关系数据库设计[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我有兴趣了解您使用过的设计策略非关系型 nosql 数据库 也就是说 不使用传统关系设计或 SQL 的 大多数是新的 数据存储类 例如
  • MySQL Match() Against() 区分大小写

    目前 我的数据库是字符集Latin1意义 SELECT FROM TABLE MATCH column1 AGAINST words here IN BOOLEAN MODE 只会返回不敏感的搜索 但问题是我的数据库将通过不敏感和区分大小写
  • 带别名的 GROUP BY 子句?

    有谁知道为什么我无法分组TotalSales在此查询中 如果是这样我该如何解决这个问题 select coalesce Author ID All Authors as Author ID case when Author ID is nu

随机推荐

  • 使用导航视图菜单项上的选择器添加自定义形状波纹

    我想添加带有圆角矩形的波纹效果以及导航视图项目的选择器 但它不断添加灰色矩形波纹效果 导航视图
  • Chrome 的“跨源读取阻止 (CORB) 阻止了跨源响应”离子

    我正在尝试对用户进行身份验证 但由于以下原因我无法调用 Api跨源读取阻止 CORB 被阻止问题我的login ts代码是 if this plugins isOnline if this wait true return else if
  • 如何在c#中找到驱动器的空闲百分比

    如何在c 中找到驱动器的百分比 例如 如果 c 为 100 GB 并且已用空间为 25 GB 则可用百分比应为 75 Use the DriveInfo class http msdn microsoft com en us library
  • Facebook Webforms 应用程序获取 app_data 查询字符串

    如何从 Facebook Webforms 应用程序获取 app data 查询字符串 我希望能够在查询字符串中发送一些信息 以便我可以在我的应用程序上显示不同的主屏幕 该应用程序位于页面选项卡中 例子 如何从 app data 获取 Pa
  • 显示图像并转换为灰度 - OpenCV for Android、Java API

    我正在 Eclipse 中编写一个 Android 应用程序 它使用OpenCV4Android http code opencv org projects opencv wiki OpenCV4AndroidAPI 我怎样才能显示一个Ma
  • 从 C++ 本机插件更新 Vector3 数组

    Marshal Copy 方法仅支持少数数组类型 现在我只知道如何复制IntPtr 从 C 代码指向浮点数组 float IntPtr pvertices GetVerticesFromCPP float vertices new floa
  • 使用 linq 删除代码时出现错误

    我遇到有关使用组合框删除数据的问题 该错误提示我不知道如何解决 任何人都可以帮助我吗 private void btnDel Click object sender EventArgs e using testEntities Setupc
  • ByVal 与 ByRef VBA

    我尝试过 JaredPar 回答的问题ByRef 与 ByVal 说明 https stackoverflow com questions 4383167 byref vs byval clarification ByVal在 VB NET
  • ant 构建文件设置 javac 位置

    我正在编辑一个旧项目的构建文件 当我向使用 Java 1 6 的项目添加一些 jar 文件时 它不会构建 它说 javac javac invalid target release 1 6 很明显 我需要告诉 ant 构建文件使用 java
  • 在 C++0x 中专门化 lambda 模板

    我编写了一个特征类 它可以让我提取有关 C 0x 中函数或函数对象的参数和类型的信息 使用 gcc 4 5 0 进行测试 一般情况处理函数对象 template
  • linux下可以分配大容量的虚拟内存吗?

    对于某些目的来说 分配大量的虚拟空间并仅在访问的页面中进行分页会很有效 分配大量内存是瞬时的 并且不会实际抓取页面 char p new char 1024 1024 1024 256 好吧 上面指出的是错误的 因为它是一个 32 位数字
  • Python 评估错误

    x 5 print eval x 1 builtins None 出现错误 TypeError NoneType object is not subscriptable 为什么我会出现上述错误 另外 如何为 eval 函数指定几个内置方法
  • Ruby、Mac、Geektool 问题,文件访问权限?

    我有一个内置的 Ruby 脚本TextMate http en wikipedia org wiki TextMate并可以在TextMate中成功运行 我还可以直接从终端成功运行此脚本 该脚本中有这样一段代码 Get the XML fi
  • Struts 2.0从服务器下载文件

    我已经创建了下载方法来从服务器端下载文件到客户端 但是出现了此错误 文件已成功下载到客户端 但我有此错误 所以我无法正确返回到上一页 这是我的错误 SEVERE Servlet service for servlet default thr
  • 如何传递表值参数

    我试图将表值参数传递给存储过程 但我不断收到异常 见下文 SqlCommand c new SqlCommand getPermittedUsers myConn CommandType CommandType StoredProcedur
  • 之后如何使导入的目标成为GLOBAL?

    来自FindBoost cmakeCMake 3 8的模块 foreach COMPONENT Boost FIND COMPONENTS if Boost IMPORTED TARGETS AND NOT TARGET Boost COM
  • Ocaml utop 库路径,核心模块

    我正在尝试使用Core模块输入utop 由 Jane Street 发起并使用安装opam 问题是这样的 utop open Core Std Error Unbound module Core utop似乎没有通往Core module
  • 为什么谷歌搜索返回的结果不包含我搜索的字符串? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我认为谷歌搜索不再运作良好 我不断收到不包含我要求的搜索字符串的网页 例如 我刚刚在谷歌主搜索窗口中输入 check if a vecto
  • 文本插入光标(插入符号)出现在移动浏览器中其他元素上方

    当将焦点放在文本上时input在移动浏览器中 在 iOS Safari 和 Chrome 上测试 文本插入符号出现在任何文本的顶部div放在上面 这是一个快速 简单的示例 http jsfiddle net XQf8N http jsfid
  • 在 mysql 中使用 SUM 进行多个连接

    我一直在寻找解决方案 有很多类似的问题 但没有一个有任何正确的答案可以帮助我解决问题 首先 我的问题 问题 我想对多重连接查询中的某些列进行求和和计数 多重连接是不可能的吗 我必须筑巢吗SELECT查询 下面是我的数据库的 SQL 转储以及