首页 > 解决方案 > 对 ID 相似的同一列中的值求和

问题描述

我正在尝试使用查询共享同一组的产品数量(如果不是零)。

这是一个使用 PHP5.6 和 MySQL 查询的网站。

数据库表产品

+-------------+-------------------+-------------------+
| products_id | products_quantity |  products_master  |
+-------------+-------------------+-------------------+
|      11     |         1         |       12          |   
|      12     |         5         |       12          |
|      13     |         2         |       12          |
|      14     |         7         |       0           |
|      15     |         9         |       0           |
+-------------+-------------------+-------------------+

预期成绩

+-------------+-------------------+-------------------+
| products_id | products_quantity |  products_master  |
+-------------+-------------------+-------------------+
|      11     |         8         |       12          |   
|      12     |         8         |       12          |
|      13     |         8         |       12          |
|      14     |         7         |       0           |
|      15     |         9         |       0           |
+-------------+-------------------+-------------------+

我需要帮助编写此代码

$sql = "SELECT products_id, IF(products_master != 0, (missing code to sum quantity), products_quantity) AS products_quantity FROM products ORDER BY products_quantity";

具有相同 products_master(如果不为零)的产品具有数量总和。

标签: mysql

解决方案


您可以在子查询中使用联接和组

select p.products_id, 
    case products_master when 0 then products_quantity else x.qty end
from products p
left join  (select products_master, sum(products_quantity) as qty 
       from Products group by products_master) x 
on p.products_master = x.products_master

推荐阅读