2014-10-31 4 views
-2

У меня есть этот запрос,Невозможно подсчитать количество строк, возвращаемых из запроса

MYSQL:

SELECT COUNT(op.quantity) AS quantity_sold, op.model AS model_number, 
op.name AS product_name, ptc.category_id, cd.name 
FROM ((`order_product` op INNER JOIN `product` p ON op.product_id = p.product_id) 
INNER JOIN (`product_to_category` ptc 
INNER JOIN `category_description` cd ON ptc.category_id = cd.category_id) ON op.product_id = ptc.product_id) 
INNER JOIN `order` o on o.order_id = op.order_id GROUP BY op.model ORDER BY quantity_sold DESC; 

Я попробовал этот код, чтобы подсчитать нет. строк для приведенного выше результата.

SELECT COUNT(*) AS total FROM ((`order_product` op INNER JOIN `product` p ON op.product_id = p.product_id) 
INNER JOIN (`product_to_category` ptc 
INNER JOIN `category_description` cd ON ptc.category_id = cd.category_id) ON op.product_id = ptc.product_id) 
INNER JOIN `order` o on o.order_id = op.order_id GROUP BY op.model; 

Но я не могу получить единственное значение счета.

Мне нужно количество строк, возвращенных из первого запроса, в виде единственного значения с целью разбивки на страницы.

+2

Что проблема именно? Вы получаете неправильный результат? Ошибка? – Mureinik

+0

, пожалуйста, предоставьте схему таблиц и ясное объяснение того, что вам нужно. –

+0

Очень похоже - http://stackoverflow.com/questions/26671483/count-not-working-with-group-by –

ответ

0

Если вы хотите, чтобы количество строк, что ваш запрос возвращает, окружив его во внешнем запросе должен дать вам то, что вы хотите:

SELECT COUNT(*) AS row_count FROM (

    SELECT 
     COUNT(op.quantity) AS quantity_sold, 
     op.model AS model_number, 
     op.name AS product_name, 
     ptc.category_id, 
     cd.name 
    FROM order_product op 
    INNER JOIN product p ON op.product_id = p.product_id 
    INNER JOIN product_to_category ptc ON op.product_id = ptc.product_id 
    INNER JOIN category_description cd ON ptc.category_id = cd.category_id 
    INNER JOIN `order` o on o.order_id = op.order_id 
    GROUP BY op.model 
    ORDER BY quantity_sold DESC 
) A; 
+0

@VIM Попробуйте этот запрос, пожалуйста. – jpw

+0

Yep .. Это работает .. :) – VIM