Как добавить количество различных запросов, используя запрос в MySQL? - PullRequest
0 голосов
/ 16 августа 2011

Привет, мне нужен запрос, подобный этому


    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 ]

3 голосов
/ 16 августа 2011

Вы можете сделать

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

Вряд ли будет разница в производительности - добавление трех целых чисел не является проблемой ни для MySql, ни для механизма php.

0 голосов
/ 16 августа 2011

Если вы используете предложение group by, вы можете добавить опцию WITH ROLLUP, которая будет возвращать общую сумму всех подсчетов в группе. Смотри http://dev.mysql.com/doc/refman/5.0/en/group-by-modifiers.html

...