php - 将列添加到一个表中,该表是另一个表的 COUNT

标签 php mysql count left-join inner-join

我在表 Subscribers 中有一个订阅者列表。每次他们收到订阅副本时,都会在 Subscriptions_Fulfilments 中为每个 Subscribers.ID 创建一条新记录。

我可以创建一个表格,显示每个订阅者 ID 以及他们通过以下查询收到的副本数量:

SELECT Sub_ID, COUNT(Sub_ID) fcount FROM `Subscriptions_Fulfilments` 
GROUP BY Sub_ID

但我需要创建一个复合查询,它返回 Subscribers 以及显示 Subscriptions_Fulfilments 的 COUNT(Sub_ID) 的列。

所以我有两个问题:

A) 您将如何根据 Subscriptions_Fulfilments 中该订阅者 ID 的 COUNT 进行查询,以创建一个表来显示每个订阅者以及他们收到订阅的次数?

B) 我假设单个 MySql 查询完成此操作比运行两个查询(上面的一个查询和一个 SELECT * FROM Subscriptions)并组合更有效PHP 中的结果数组。我有一种感觉,我知道答案,但我今天想积极地学习一些新东西。

不幸的是,在尝试了太多次之后,我显然不擅长对此进行查询,并且我几乎没有通过上述查询来展示它。如果这最终是一个骗局,我深表歉意,我在询问之前搜索了很长时间,但是很难精确搜索查询帮助...

最佳答案

这是一个简单的示例,显示订阅者 ID 和他们收到的订阅号。希望对您有所帮助。

第 1 步:从订阅者表中选择 ID
第二步:选择每个订阅者收到的订阅数。
第 3 步:根据 ID 加入两个表。

SELECT SubId, noSub FROM 
Subscribers sb JOIN (SELECT SubId AS sid, COUNT(*)AS noSub FROM Subscriptions_Fulfilments GROUP BY SubId)AS ss ON sb.SubId = ss.sid

关于php - 将列添加到一个表中,该表是另一个表的 COUNT,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29309472/

相关文章:

php - 为什么必须手动抛出异常?

php - Opencart 基础 - 是否可以编写自定义 Controller 以在 View 中使用,或者我是否必须使用模块?

mysql - 如何在mysql中将select写入@variable

php - MySQL+PHP : optimise ranking query and count subquery

php - 如何在 PHP 中获取新推送项目的数字键?

php - 从链接表单输入

mysql - 将来自 3 个表的信息合并到一个表中(MySQL)

php - 最佳速度的表设计 ~1M 行

mysql 如何按情况查询分组中返回的总行数

php - 从数据库获取类别期间按类别过滤器计算行数