如何使用 mysql5 中的查询添加不同查询的计数?

Posted

技术标签:

【中文标题】如何使用 mysql5 中的查询添加不同查询的计数?【英文标题】:How to add count of different query using a query in mysql5? 【发布时间】:2011-10-27 21:18:14 【问题描述】:

您好,我需要这样的查询

从员工中选择 count(id) where.. => 给出 count1=10 select count(id) from emplyer where.. => 给出 count2=5 从用户中选择 count(id) 其中.. => 给出 count3=20

我可以像这样添加这些结果

计数=计数1+计数2+计数3;

但我想知道是否有任何选项可以使用单个查询获取计数,而不是单独添加这些结果。另外我想知道在应用程序性能的情况下哪一种是最好的方法。

【问题讨论】:

【参考方案1】:

你可以的

SELECT ((select count(id) from employee where..) + (select count(id) from emplyer where..) + (select count(id) from users where..))

几乎不会有性能差异——添加三个整数对 mysqlphp 引擎来说都不是挑战。

【讨论】:

对不起.. 不仅有加法,而且还有三个以上的查询来获取该计数值这些不是简单的获取查询。所以我问性能【参考方案2】:

如果您使用 group by 子句,您可以添加选项 WITH ROLLUP,它将返回组中所有计数的总和。见http://dev.mysql.com/doc/refman/5.0/en/group-by-modifiers.html

【讨论】:

以上是关于如何使用 mysql5 中的查询添加不同查询的计数?的主要内容,如果未能解决你的问题,请参考以下文章

如何将来自不同查询的值(计数)组合成一个查询

MySQL:如何查询出每个分组中的 top n 条记录?

在 TSQL 中,如何添加一个计数列来计算查询中的行数?

如何使用嵌套案例查询获得不同的计数?

如何通过两个不同的子句同时查询两个字段的计数?

Google BigQuery:如何查询两个不同值之间的共享值计数?