我有一个名为发布者应用程序的表,其中每条记录都链接到一个经理并带有特定的状态。
经理与另一个名为 admins 的表相关,该表的使用是为了让我知道在我的 View 中使用的管理员的名字。
这是我的查询:
SELECT p.status
, a.id
, a.first_name
, COUNT(p.status) count
FROM admins a
JOIN publisher_applications p
ON a.id = p.manager
GROUP
BY a.id
, p.status
我想要做的是获取分配给每个经理的具有特定状态(状态范围从 1-9 且含义不同)的应用程序的数量。
此查询工作正常,但返回的结果远少于很多人的实际计数。我不确定我的查询是否有什么问题。
我确实知道应该有更高的计数,因为我选择了某个管理员 ID 和某个状态,并且它有数百个。
感谢您的帮助!
编辑:这是针对此特定问题的 SQL fiddle 。由于某种原因,它在这里工作,但我的数据库有数百行,并且 sql 查询仅返回 1-10,而不是 126,例如,对于某个管理员针对某种状态的计数之一。
最佳答案
试试这个(按 Select 中除聚合之外的每一列进行分组,并使用 count(*) 以防万一):
SELECT p.status
, a.id
, a.first_name
, COUNT(*)
FROM admins a
JOIN publisher_applications p
ON a.id = p.manager
GROUP BY a.id
, a.first_name
, p.status
关于php - 计数未在查询中返回正确的计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31149808/