mysql - 对 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(如果不为零)的产品具有数量总和。
解决方案
您可以在子查询中使用联接和组
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
推荐阅读
- python - Selenium Firefox:TypeError:__init__() 有一个意外的关键字参数“选项”
- python - 如何创建全局 DataFrame 并将其附加到 Python 中的函数之外
- javascript - 第二次点击后反应复选框被(取消)选中
- java - 非同步的 WeakHashMap 有害吗?
- laravel - Laravel url::assets 在 url 的每个部分之后返回“\”
- html - 如何计算标签中标题的高度?
- ios - 在 UIbutton 周围环绕标签
- laravel - 急切加载 belongsToMany 关系时,如何链接 ->makeHidden() ?
- c++ - 明显等价的表达式 (class)A a; 和 (class)A a{}; 之间的区别
- javascript - 找到数组的两个元素,使得它们的绝对差不大于给定整数但尽可能接近所述整数