计算属于某个类别及其子类别的所有帖子

2023-12-04

我非常感谢对我的问题的帮助:

我有 2 个 MySQL 表、类别和帖子,布局(简化)如下:

类别:

CATID - 名称 - Parent_id

posts:

PID - 名称 - 类别

我想做的是获取每个类别的帖子总数,包括子类别中的所有帖子。

现在,我通过执行以下操作来获取每个(顶级)类别(但不是子类别)中的帖子总数:

"SELECT c.*, COUNT(p.PID) as postCount 
        FROM categories AS c LEFT JOIN posts AS p 
        ON (c.CATID = p.category) 
        WHERE c.parent='0' GROUP BY c.CATID ORDER BY c.name ASC"; 

问题再次是,如何获得每个类别的总和,包括每个相关子类别的总数?

将数据库重组为嵌套集格式是不可能的,因为我正在维护现有系统。

感谢您的帮助!


如果类别不是无限嵌套的,您可以一次 JOIN 一层。以下是最多 3 层嵌套的示例:

SELECT c.name, COUNT(DISTINCT p.PID) as postCount 
FROM categories AS c 
LEFT JOIN categories AS c2
    ON c2.parent = c.catid
LEFT JOIN categories AS c3
    ON c3.parent = c2.catid
LEFT JOIN posts AS p 
    ON c.CATID = p.category
    OR c2.CATID = p.category
    OR c3.CATID = p.category
WHERE c.parent = '0' 
GROUP BY c.CATID, c.name
ORDER BY c.name ASC
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

计算属于某个类别及其子类别的所有帖子 的相关文章

  • SQL:删除SQL Server中的重复记录

    我有一个 sql server 数据库 我预先加载了大量数据行 不幸的是 数据库中没有主键 并且表中现在存在重复信息 我不担心没有主键 但我担心数据库中有重复项 有什么想法吗 原谅我是一个sql server新手 嗯 这就是表上应该有主键的
  • 使用 Athena 从 AWS WAF 日志中的规则组列表获取终止规则

    我跟着这些说明 https docs aws amazon com athena latest ug waf logs html将我的 AWS WAF 数据放入 Athena 表中 我想查询数据以查找具有 BLOCK 操作的最新请求 此查询
  • 如何返回调用不同数据库中的存储过程的远程数据库名称?

    我在一个 SQL Server 2008 R2 上有许多不同的数据库 为了便于论证 我们将它们称为 DB A DB B 和 DB C 我被要求开发一个将存在于 DB A 上的存储过程 该存储过程将用于删除和创建索引 并在 DB A 的表中存
  • 如何在Redshift中进行分层随机样本?

    我需要对从不同类别购买商品的客户进行随机抽样 有8个类别 订单分布在其中 如果我想对已购买的客户进行随机抽样 但保持每个类别的订单比例相同 我将如何在我的 sql 代码中进行设置 下面的表格强调了这一点 它不包括客户数据 我希望我的客户列表
  • MySql 西班牙语字符数据

    我有一个包含西班牙语字符的数据库 为了填充数据库 我从字符编码 UTF 8 的客户端页面获取值 当我在 mySql 数据库中插入值时 行包含更改的数据 例如 如果我插入 M xico 数据库中的条目是 M xico 其影响是当我对指定 M
  • 需要 SQL 选择查询帮助

    我的问题类似于SQL选择组查询 https stackoverflow com questions 11407601 sql select group query 但模式发生了变化 我想要不同的结果 如下所述 给定链接的解决方案没有给我正确
  • UTF-8、PHP 和 XML Mysql

    我在解决这个问题时遇到了很大的问题 我有一个编码 latin1 swedish ci 的 mysql 数据库和一个存储名称和地址的表 我正在尝试输出 UTF 8 XML 文件 但在使用以下字符串时遇到问题 Otiv gen它被输出为Otiv
  • SQL Server 2008中与其他列的排序树

    我有一个使用它实现树的表层次结构ID column 样本数据 People Girls 1 Zoey 1 1 Kate 1 2 Monica 1 3 Boys 2 Mark 2 1 David 2 2 这是使用的顺序层次结构ID列作为排序列
  • 我应该安装哪个驱动程序才能使用 powershell 运行 mysqlcommand?

    我安装了 mysql 连接器 ODBC 5 1 8 来运行 sqlcommand 但出现此错误 Cannot find type MySql Data MySqlClient MySqlConnection make sure the as
  • 如何以最佳方式计算 python 列表中的元素数量

    这几乎是同一个问题here https stackoverflow com questions 3710976 counting unique elements in a list 除了我要询问排序结果的最有效解决方案 我有一个列表 大约
  • 连接到 SQL Server 数据库 C#-WinForms

    我正在制作一个桌面应用程序 我希望用户必须登录才能充分使用该程序 我已经在 www winhost com 我的网站的托管位置 上创建了一个数据库 但现在我不知道该怎么办 我一直在使用 google 和 msdn 我想知道如何以编程方式将新
  • Oracle SQL 列转行(无需 UNPIVOT)

    我目前拥有的 Team User Apples Oranges Pears Red Adam 4 5 6 Red Avril 11 12 13 Blue David 21 22 23 需要什么 Team User Product Count
  • 关于数据库变更的通知

    我正在尝试一种场景 其中我想使用任何用户提交的更改来更新在不同 PC 上运行的桌面 UI 例如 Application1 安装在 PC1 PC2 和 PC3 上 假设所有 PC 都运行此应用程序 假设 PC1 上的用户 1 更改数据并提交到
  • 在 apex 中根据 2 种不同类型的用户进行自定义身份验证

    我有一种身份验证方案 目前仅验证用户是否在一个表中 即雇主表中 现在我希望这个身份验证方案来验证用户是雇主还是雇员 并且根据他们是雇主还是雇员 它应该将他们重定向到不同的页面 首先 我如何在身份验证脚本中包含第二个表 我最大的问题是 当员工
  • HQL:从 Eager 表中获取连接集合

    我有四张桌子 RootNode Will return multiple root nodes SubNode Will return one sub node per root node SubNodeChildren1 Will ret
  • 对于 XML 路径:如何将属性和值保留在同一节点中

    我在使用时遇到一些问题FOR XML PATH 我的情况是 我运行了如下脚本 属性CCY和价值AMOUNT合并到同一个节点 脚本1 SELECT USD AS Amount Ccy 123000 AS Amount Foo AS Foo F
  • 将我的本地数据库(Mysql)复制到远程数据库(phpmyadmin)

    My MySQL database local server is connected to a weather station The data are updated continuously on my local server My
  • InnoDB如何存储字符列?

    这个问题仅解决 短 的问题CHAR and VARCHAR列存储在 InnoDB 表中 Does a CHAR 10 列正好占用 10 个字节吗 尾随空格会发生什么情况 对于每个字符需要超过 1 个字节的字符集怎么办 如何VARCHAR 1
  • mysql 无法向用户授予权限,出现错误:ERROR 1819 (HY000): 您的密码不满足当前策略要求

    我正在将一个新应用程序迁移到包含 MySQL 数据库的生产环境 尝试使用以下命令授予所需权限时 GRANT ALTER CREATE ON MyDB to ThisUser 我收到错误 ERROR 1819 HY000 Your passw
  • SQL 选择另一列中具有最大值的列

    我有一个看起来像这样的表 Name Group Value A 1 0 B 1 2 C 1 5 D 2 6 E 2 0 F 3 3 我想选择每组中具有最大值的名称 例如 有 3 个组 因此结果将是 Name C because it has

随机推荐

  • 如何正确使用__setattr__,避免无限递归

    我想定义一个包含以下内容的类read and write方法 可以按如下方式调用 instance read instance write instance device read instance device write 为了不使用交错
  • 沿一维的 1D 数组和 3D 数组的有效乘积 - NumPy

    我有两个 numpy 数组 一个名为 t 的一维数组 形状为 70L 其元素名为 ti 称为 I 的 3D 数组 形状为 70L 1024L 1024L 每个元素称为 Ii 因此 Ii 的尺寸为 1024L 1024L 我想沿第一维制作两个
  • 如何解决“bash:ls:找不到命令”[关闭]

    Closed 这个问题不符合堆栈溢出指南 目前不接受答案 我做错了什么PATH 所以目前如果我输入ls我得到的命令 bash ls command not found 我该如何解决 Restore PATH 最简单的方法是关闭当前的 she
  • SQLAlchemy 相当于 SQL“LIKE”语句

    标签列具有 苹果香蕉橙 和 草莓香蕉柠檬 等值 我想找到 SQLAlchemy 等效语句 SELECT FROM table WHERE tags LIKE banana 我应该传递什么Class query filter 去做这个 每列有
  • Android如何为回收器视图制作自定义滚动条

    我有一个用于回收器视图的自定义垂直滚动条 但用于显示项目位置的拇指有点太大 并且在顶部时处于关闭位置 在styles xml中 我使用thumb xml和track xml文件定义了自定义滚动条 用于自定义轨道和拇指 在 recyler x
  • Android:如何触发软键盘上的任意按键事件?

    有没有办法以编程方式按下 Android 软键盘的按键 就像 当键盘出现时 我想通过我的代码而不是手指按 J 键 第一种方法 IBinder binder ServiceManager getService window IWindowMa
  • fgets 被跳过

    我有一个小程序 我想询问一个选项 然后询问一个文件名 Some code before printf n printf 1 Register a file n printf 2 Get global list n printf 3 Down
  • Java - 无法解析的日期,需要格式匹配“GMT-0400”

    我有以下Java DateFormat formatter new SimpleDateFormat EEE MMM dd yyyy HH mm ss zZ zzzz Locale ENGLISH Calendar cal Calendar
  • Java 加载自定义字体文件 (.ttf)

    我在下面使用了这段代码 它出现了这个堆栈跟踪 java io FileNotFoundException font ttf No such file or directory at java io FileInputStream open
  • Python ctypes:在 c 中调用具有自定义类型的函数

    我正在尝试包裹预先存在的c代码用于 Linux 中的 Python 我对 c 的经验很少 目前我正在使用 ctypes 来解决这个问题 我的 C 函数需要一个带有自定义类型条目的二维数组 我不知道如何在 python 中重新创建它以将其传递
  • 错误“Gradle 同步失败:连接被拒绝:连接”

    所以我过了很长一段时间才再次安装Android Studio 它要求我配置代理 所以我就这么做了 我测试了连接并且成功了 然后它要求我配置 Gradle 的代理设置 我使用了相同的配置 现在 在加载最新的 Vuforia Sample 项目
  • 具有空初始化的对象的生命周期

    当前的标准草案说 以前的标准有类似的措辞 基本生活 1 对象或引用的生命周期是其运行时属性 对象或参考 一个物体被称为非空的 初始化 如果它是类或聚合类型 并且它或其中之一 它的子对象是由一个构造函数而不是一个简单的构造函数初始化的 默认构
  • 如何创建没有任何中间文件的 Hive 表?

    我想创建并填充配置单元表而不从磁盘加载任何内容 具体来说 我有 set idlist 1 2 3 set values 2 3 5 我想创建一个包含 9 行的表 id value 1 2 1 3 1 5 2 2 2 3 2 5 3 2 3
  • main函数可以重载吗?

    两个有效版本main 存在于C int main version 1 int main int argc char argv version 2 但两种过载不能同时共存 为什么不 潜在用例 从终端运行程序时 如果没有传递参数 则调用第一个版
  • Google Analytics 和 __utm.gif 文件

    当使用 Google Analytics 并使用较新的 ga js 文件时 您网站的根目录中是否需要 utm gif 文件 我确实看到我的浏览器对 google analytics com 上的文件进行了调用 http www google
  • 为什么在哈希映射中查找项目比在数组中查找项目更快?

    您可能在某个地方提到过在 hashmap dictionary table 中查找元素比在 list array 中查找元素更快 我的问题是为什么 到目前为止我做出的推论 为什么它应该更快 据我所知 在这两种数据结构中 它必须遍历直到到达所
  • 多个模板匹配仅检测到一个匹配项

    我正在尝试匹配这张图片 在这张图片中 然而 我找不到超过一个的头目敌人 我需要做什么才能找到其他人 图片加载 struct XYposition float X float Y std vector
  • 如何使用 jQuery 获取 HTTP 状态代码?

    我想检查页面是否返回状态代码401 这可能吗 这是我的尝试 但它只返回 0 ajax url http my ip test test php data complete function xhr statusText alert xhr
  • 在 PHP 中,可以在同一行实例化一个对象并调用一个方法吗?

    我想做的是这样的 method result new Obj gt method 而不必这样做 obj new Obj method result obj gt method 在我的具体情况下 结果实际上对我来说并不重要 但是 有办法做到这
  • 计算属于某个类别及其子类别的所有帖子

    我非常感谢对我的问题的帮助 我有 2 个 MySQL 表 类别和帖子 布局 简化 如下 类别 CATID 名称 Parent id posts PID 名称 类别 我想做的是获取每个类别的帖子总数 包括子类别中的所有帖子 现在 我通过执行以