2014-10-31 46 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 2014-10-31 12:41:02

+0

請提供您的表格架構並清楚說明您需要什麼。 – 2014-10-31 12:43:07

+0

非常相似 - http://stackoverflow.com/questions/26671483/count-not-working-with-group-by – 2014-10-31 12:47:29

回答

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 2014-10-31 13:10:21

+0

是的..這工作.. :)。 – VIM 2014-10-31 13:12:16