mysql其他表中子项的总价

2023-12-14

我有两个表,一个存储数据子级和父级层次结构以及其他路径和后代

+----------+------------+-----------+
| userid   |    parent  |    price  |
+----------+------------+------------
| 1        |    null    |      20   | 
| 2        |      1     |      20   | 
| 3        |      1     |      20   | 
| 4        |      2     |      20   | 
| 5        |      2     |      20   | 
| 6        |      3     |      20   | 
| 7        |      4     |      20   | 
+----------+------------+-----------+

我需要获取父级 1 的所有用户 ID,然后获取其他表中的后代并按用户 ID 总价进行分组

+-------------+---------------+-------------+
| ancestor_id | descendant_id | path_length |
+-------------+---------------+-------------+
|           1 |             1 |           0 |
|           1 |             2 |           1 |
|           1 |             3 |           1 |
|           1 |             4 |           2 |
|           1 |             5 |           2 |
|           1 |             6 |           2 |
|           1 |             7 |           3 |
|           2 |             2 |           0 |
|           2 |             4 |           1 |
|           2 |             5 |           1 |
|           2 |             7 |           2 |
|           3 |             3 |           0 |
|           3 |             6 |           1 |
|           4 |             4 |           0 |
|           4 |             7 |           1 |
|           5 |             5 |           0 |
|           6 |             6 |           0 |
|           7 |             7 |           0 |
+-------------+---------------+-------------+

我查询它将所有孩子加在一起

select 
sum(b.price)

from webineh_prefix_nodes_paths_tmp a

    join webineh_prefix_nodes_tmp b on (b.userid = a.descendant_id)

where a.ancestor_id = 1 

这个工作正常,但总和父 1

我需要直接显示儿童的以下结果 (2,3)

 +----------+------------+-
    | userid   |    total   |
    +----------+------------+
    | 2        |    80      |
    | 3        |    40      |
    +----------+------------+

也在创建 sqlfiddle 我的问题http://sqlfiddle.com/#!9/9415ed/2


尝试这个;)

select ancestor_id as userid, sum(b.price) as total
from webineh_prefix_nodes_paths_tmp a 
join webineh_prefix_nodes_tmp b 
on b.userid = a.descendant_id
where a.ancestor_id in (select userid from webineh_prefix_nodes_tmp where parent = 1)
group by ancestor_id

SQLFiddle 演示

Edited

select ancestor_id as userid, sum(b.price) as total
from webineh_prefix_nodes_paths_tmp a 
join webineh_prefix_nodes_tmp b 
on b.userid = a.descendant_id
inner join webineh_prefix_nodes_tmp c
on a.ancestor_id = c.userid
and c.parent = 1
group by ancestor_id

SQLFiddle 演示

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

mysql其他表中子项的总价 的相关文章

  • 如何在 MySQL 中测试 Select for Update

    我正在表演SELECT FOR UPDATE或 InnoDB 表的行级锁定 我的目的是只有一个请求可以读取同一行 因此 如果两个用户同时请求相同的数据 其中只有一个人获取数据 即第一个触发查询的人 但是我如何测试锁定是否已放置 因为我正在通
  • mysql 中的二进制、十六进制和八进制值

    我对在 mysql 数据库中使用二进制 十六进制和八进制系统非常感兴趣 首先 请给我一个建议 为什么我们在存储信息时需要它们 因为信息太多 或者为什么 另外 哪种类型的值必须存储在标记系统中 另外这里还有像 这是例子 gt SELECT 5
  • JDBC插入实数数组

    我试图将一个真实的数组插入到 postgresql 数组中 该表的定义是 String sqlTable CREATE TABLE IF NOT EXISTS ccmBlock sampleId INTEGER block REAL 插入内
  • 快速查询最新记录的方法?

    我有一张这样的表 USER PLAN START DATE END DATE 1 A 20110101 NULL 1 B 20100101 20101231 2 A 20100101 20100505 在某种程度上 如果END DATE i
  • ORDER BY 字段内的 MySQL 子查询。 (没有内连接)

    有很多与此相关的问题 但都具有使用内部联接的相同答案 这 我认为 在这里是不可能的 如果我错了请告诉我 我现在正在做的是调用两个不同的 mysql 查询来获取结果 它工作完美 db gt query SELECT FROM meta WHE
  • MySQL/PDO::quote() 尽管使用 PDO::PARAM_INT 参数,但仍在整数周围加上引号

    无论我传递给什么值 数据类型对 它都会出现 pdo gt quote value type 它总是将其引用为字符串 echo pdo gt quote foo PDO PARAM STR foo as expected echo pdo g
  • PHP MySQL 使用选项/选择 HTML 表单标签进行多重搜索查询

    我正在尝试使用两个搜索字段设置基本的 MySQL LIKE 搜索 我不想拥有它 所以它有多个可选搜索字段 例如if isset POST city isset POST name 我不知道如何用 HTML 来做到这一点
  • 如何检测Mysql/innodb中的死锁?

    我知道在 Innodb 中使用事务时不可避免地会发生死锁 并且如果应用程序代码正确处理死锁 它们是无害的 正如手册所说 只需再试一次 所以我想知道 如何检测死锁 死锁是否会发出一些特殊的 mysql 错误号 如果重要的话 我正在使用 PHP
  • 提高第一个查询的性能

    如果执行以下数据库 postgres 查询 则第二次调用要快得多 我猜第一个查询很慢 因为操作系统 linux 需要从磁盘获取数据 第二个查询受益于文件系统级别和 postgres 中的缓存 有没有一种方法可以优化数据库以快速获得结果fir
  • 使用子查询 select 创建新表

    我试图从子查询选择创建一个新表 但出现以下错误 附近的语法不正确 SELECT INTO foo FROM SELECT DATEPART MONTH a InvoiceDate as CalMonth DATEPART YEAR a In
  • 如何从 SQL Server 2008 查询结果中删除“NULL”

    我有一个包含 59 列和超过 17K 行的表 很多行都有NULL在某些列中 我想删除NULL以便查询返回空白 而不是NULL 我可以运行一些更新功能来替换所有NULL with 使用 SQL Server 2008R2 Management
  • posts_search 中的自定义查询

    如何使用此查询作为我的自定义搜索查询 add filter posts search my search is perfect 20 2 function my search is perfect search wp query sWord
  • mysql自动存储记录创建时间戳

    mysql 有什么方法可以在创建记录时自动将时间戳存储在记录行中 我试图使用时间戳 数据类型 和 current timestamp 作为默认值 但后来意识到每次更新记录时都会更新 我只需要一些可以存储创建时间戳的东西 Thanks Set
  • 快速将列的副本添加到 MySQL 表

    我需要一种快速的方法来复制表中的 DATETIME 列并为其指定一个新名称 我的表中有一个名为 myDate 的列 名为 myResults 我需要一个查询来在名为 newDate 的表中创建一个新列 该列的数据与 myDate 列完全相同
  • 在 DataView 的 RowFilter 中选择 DISTINCT

    我试图根据与另一个表的关系缩小 DataView 中的行范围 我使用的 RowFilter 如下 dv new DataView myDS myTable id IN SELECT DISTINCT parentID FROM myOthe
  • MySQL 转储未知选项“-no-beep”

    在旧服务器上我使用了mysql转储命令来备份 MySQL 数据库 在新服务器上 MySQL 版本为 5 6 相同的命令给出了错误 unknown option no beep 无论它插入什么 我也在互联网上搜索过 但找不到任何帮助 在 my
  • 使用加权行概率从 PostgreSQL 表中选择随机行

    输入示例 SELECT FROM test id percent 1 50 2 35 3 15 3 rows 你会如何编写这样的查询 平均 50 的时间我可以获得 id 1 的行 35 的时间 id 2 的行 15 的时间 id 3 的行
  • 如何通过SQL查询检查是否有JSON函数?

    有SQL 2016 中的 JSON 函数 https learn microsoft com en us sql t sql functions json functions transact sql例如 JSON VALUE JSON Q
  • 如何部署“SQL Server Express + EF”应用程序

    这是我第一次部署使用 SQL Server Express 数据库的应用程序 我首先使用实体 框架模型来联系数据库 我使用 Install Shield 创建了一个安装向导来安装应用程序 这些是我在目标计算机中安装应用程序所执行的步骤 安装
  • post php mysql 的拆分关键字

    我有一个表存储帖子 ID 它的标签如下 Post id Tags 1 keyword1 keyword2 keyword3 我想循环遍历该表中的每一行并执行以下操作 将关键字1 关键字2 关键字3放入新表中 word id word val

随机推荐

  • 对 sas 数据集进行分区以进行批处理的最快方法是什么?

    我有一个大型 sas 数据集 1 5m obs 250 个变量 我需要将其拆分为几个大小相等的较小 sas 数据集以进行批处理 每个数据集需要包含所有变量 但仅包含一部分观测值 最快的方法是什么 您可以执行以下操作 macro splitd
  • Google Play 游戏服务 + BaseGameUtils 添加到 Gradle 项目 = 包不存在

    我已经阅读了有关此主题的许多答案 但无法解决我的问题 这里是 我有一个 gradle 项目 它是一个游戏 在那个游戏中我想添加谷歌游戏服务 就像我成功地使用 type a number 这不是一个 gradle 项目 一样 但我收到以下错误
  • 执行模块和状态模块最大的区别是什么

    最近 我正在向它的文档学习 salt 但是 我对执行模块和状态模块很困惑 为什么有两种类型的模块 为什么他们不能统一 如果我们只有一种类型的模块 可以在命令行和 sls 文件中使用 不是更简单更好吗 简而言之 执行模块 执行任务 状态模块
  • 在.net应用程序中拦截DateTime.Now

    我们有一个使用当前日期 使用 Datetime Now 来计算特定值的应用程序 我们还需要能够根据不同的日期在服务器上运行这些计算 不幸的是 这两个明显的选择并不可行 a 虽然我们有应用程序的代码 但由于政治因素以及其他环境也使用该服务的事
  • 延迟()在每个()循环内没有按预期工作(jQuery)

    我有一系列元素想要按顺序切换进出视图 我正在使用一个
  • 解析正则表达式 - (不够)

    我用书籍创建了一个小型数据库 并尝试使用 C 中的正则表达式获取书籍的标题 作者和年份 但发生了错误 数据库看起来像这样 Eragon Christopher Paolini 2005 The Fellowship of the Ring
  • 如何在保留当前工作目录并维护传递给脚本的所有参数的同时提升 Powershell?

    function Test IsAdministrator Identity System Security Principal WindowsIdentity GetCurrent Principal New Object System
  • 无法将 target.value 传递给状态钩子返回未定义 - React.js React

    单击时 我想将名称属性传递给状态挂钩 但它返回未定义 const fav setFav useState useEffect gt dispatch fetchProfileAction user dispatch fetchReposAc
  • Mongo 在双重嵌套数组内更新

    我有一个 mongo 集合 看起来像这样 db users find pretty id ObjectId 57c3d5b3d364e624b4470dfb fullname tim username tim email email pro
  • 在 Windows 中使用 rinside 和 qt

    我开始在 C 中使用 rinside 和 rcpp 我只想从零开始 所以我的 QT 项目除了创建 RInside 实例之外什么都没有 但我有一个无法解决的问题 我的项目中只有一个对话框 我的项目文件 QT core gui TARGET r
  • 在 Ionic 中创建并显示 pdf

    我在用PDFMAKE创建一个base64编码的pdf 我尝试通过将编码的base64提供给iframe src来用Iframe显示它 它可以在 PC 上运行 但不能在移动设备 android 和 ios 上运行 所以 最后我偶然发现Angu
  • ST4中过滤掉空字符串

    考虑以下示例 lt foo bar separator gt 这给出了结果 foo bar 但是我需要 foo bar 在 ST4 中使用分隔符进行格式化之前 有什么方法可以过滤掉空字符串值吗 在实际代码中 值来自另一个模板 该模板具有
  • Spring 和 Thymeleaf:从 th:each 表将对象发送到控制器

    我正在使用以下方法制作经验数据表th each属性与百里香叶我的目标是在每一行都有一个提交按钮 单击该按钮时 会将一个体验对象发送到我的控制器 该对象与我单击提交按钮的行相对应 我不知道出了什么问题 并且似乎无法在网上找到任何可以帮助解决此
  • 您能否提供一些示例来说明为什么使用正则表达式解析 XML 和 HTML 很困难? [关闭]

    Closed 这个问题需要多问focused 目前不接受答案 我看到人们犯的一个错误over and 再次正在尝试使用正则表达式解析 XML 或 HTML 以下是解析 XML 和 HTML 困难的一些原因 人们希望将文件视为行序列 但这是有
  • 确定论坛中未读的项目

    我正在尝试使用 PHP 和 MySQL 构建一个论坛系统 我想知道的是 如何设置它 以便当用户阅读论坛条目时 它显示为仅针对该用户阅读 无论他们在哪个论坛 直到其他人在其上发帖 目前 对于每个线程 我有一个带有 PostID 的表 并具有发
  • 无法确定元音和辅音

    通过下面的代码 无论输入的第一个字母是什么 它总是被确定为元音 original raw input Please type in a word firstLetter original 0 print firstLetter if fir
  • java / grails中的服务器端网络打印

    我是 java grails 开发人员 致力于重新设计软件系统 要求之一是让服务器端应用程序将数据发送到各种网络打印机以打印文本数据 我在网上搜索了有关java网络打印的信息 但没有找到 我查看了 Java Print Service AP
  • 角度图添加水平线

    我想像这里一样添加水平线 Chart js 绘制水平线到我的 angular chart js 如果我理解正确的话 我需要做的是扩展线型图表 我应该如何以及在哪里执行此操作 编写自己的指令 尝试扩展 Angular config 中的 ch
  • 通过下标获取末尾一位数组元素的地址:C++ 标准是否合法?

    我已经多次看到有人断言以下代码是 C 标准不允许的 int array 5 int array begin array 0 int array end array 5 Is array 5 在这种情况下合法的 C 代码吗 如果可能的话 我希
  • mysql其他表中子项的总价

    我有两个表 一个存储数据子级和父级层次结构以及其他路径和后代 userid parent price 1 null 20 2 1 20 3 1 20 4 2 20 5 2 20 6