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

时间:2011-08-16 08:45:08

标签: php mysql performance mysql5

嗨,我需要这样的查询


    select count(id) from employee where.. => gives count1=10

    select count(id) from emplyer where..  => gives count2=5

    select count(id) from users where..    => gives count3=20

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


    count = count1+count2+count3;

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

2 个答案:

答案 0 :(得分:3)

你可以做到

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

几乎没有性能差异 - 添加三个整数既不是MySql也不是php引擎的挑战。

答案 1 :(得分:0)

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