MySQL select count

Я пытаюсь подсчитать количество компаний, у которых есть хотя бы один продукт, по следующему запросу

SELECT count(*)
FROM company c
JOIN product p on c.id = product.company_id
WHERE p.is_deleted = 0
AND c.is_customer = 1
AND c.company_type_id = 5
GROUP by c.id

Итак, это показывает мне список всех компаний и количество продуктов для каждой компании.

] Я пытаюсь подсчитать количество компаний из приведенного выше результата.

Этого можно достичь следующим образом:

SELECT count(*)
FROM ( 
    SELECT count(*)
    FROM company c
    JOIN product p on c.id = product.company_id
    WHERE p.is_deleted = 0
    AND c.is_customer = 1
    and c.company_type_id = 5
    GROUP by c.id) AS t1

Итак, это дает мне правильный результат, но мне просто интересно, есть ли более эффективный способ делать вещи.

9
задан JonoB 16 March 2011 в 11:03
поделиться