打印每个products_id的订单数量

时间:2013-10-30 15:49:01

标签: php sql count

是否有比我快的解决方案?

我有一个包含orders_id和products_id列表的表(不能更改)

现在我想知道使用独特的products_id订购了多少订单。

我尝试了以下内容。但是在加载太多行(160'000)时崩溃了。

    SELECT  DISTINCT `products_id` ,  `products_name` , COUNT(*) as totalorders FROM  `orders_products` ORDER BY  `products_id` ASC 

我也试过子查询,但问题和上面一样。

    SELECT (SELECT count(*) FROM orders_products WHERE products_id = op.products_id) AS totalorders, products_id, products_name FROM orders_products op ORDER BY products_id ASC

2 个答案:

答案 0 :(得分:0)

怎么样:

SELECT `products_id`, `products_name`, COUNT(*) FROM `orders_products` GROUP BY (`products_id`, `products_name`) ORDER BY `products_id`

答案 1 :(得分:0)

希望你有关于products_id的索引

在这种情况下,我会尝试以下内容:

选择products_id,Min(Products_Name),count(*)作为TotalOrders 来自订单_产品 按产品分组_ID 按产品订购_ID asc

您可以通过其他几种方式获取products_name,例如将其包含在您的分组中(其他一些含义)。