我正在尝试从视图中的多个表中获取数据列表以进行分析-大部分数据来自一个表,然后我需要从多个其他表中获取计数以显示登录次数、用户数等.
我正在使用以下查询(简化为仅显示一些行和一个连接):
Select
companies.company_name, companies.last_login, companies.last_ip,
(SELECT COUNT(*) FROM auditing_master GROUP BY company_id) AS audit_count
From
companies
Left Join
auditing_master On auditing_master.company_id = companies.id
Group by
companies.id
当我运行它时,我得到一个错误:
#2014 - Commands out of sync; you can't run this command now
如果我在 SELECT COUNT (*) 中没有 GROUP BY 的情况下运行它,那么它不会给出任何错误,但它会返回 auditing_master 表中所有条目的计数,无论它指的是哪个公司。
如何获得一个查询来向我显示公司表中的所需数据,同时还显示按公司 ID 分组的审计主(和其他人)的总数?
编辑
使用多个计数/联接时的代码:
Select
c.company_name, c.last_login, c.last_ip,
COUNT(am.company_id) AS audit_count,
COUNT(u.company_id) AS users,
COUNT(e.company_id) AS employees
From
companies c
Left Join
auditing_master am On am.company_id = c.id
Left Join
users u On u.company_id = c.id
Left Join
employees e On e.company_id = c.id
Group by
c.id
此查询在 WAMP 上的 PHPMyAdmin 中本地查询,只有大约 10 家公司需要 7 秒才能完成,并给出与任何内容无关的“无意义”结果。
谢谢