[英]SQL Select * from table sum and group by id
我需要一些小帮助来分组和汇总项目ID的数量。
来自数据库的数据:
products
id code name price
1 1234 Product name 12
2 1235 Product name 12
3 1236 Product name 12
warehouses_products
product_id warehouse_id quantity
1 1 12
2 1 0
2 2 3
3 1 1
3 2 1
PHP获取数据。
$db = new PDO('mysql:host=localhost;dbname=data2;charset=utf8', 'user2', 'Password');
foreach($db->query('SELECT * FROM products as pr INNER JOIN warehouses_products AS s ON (s.product_id = pr.id) group by pr.id') as $row) {
echo $row["code"] . ' ' . $row["quantity"];
}
一个例子:如果我在2个仓库中有相同的代码,这只会得到其中1个仓库,我想要的是对产品的数量和组乘以product_id。
任何帮助表示赞赏。
尝试这个 :
'SELECT *, SUM(s.quantity) AS sum_quantity FROM products as pr INNER JOIN warehouses_products AS s ON (s.product_id = pr.id) group by pr.id'
在你的foreach
:
echo $row["code"] . ' ' . $row["sum_quantity"];
查询:
SELECT p.id, p.code, SUM(wp.quantity) as quantity
FROM products p
JOIN warehouses_products wp ON wp.product_id = p.id
GROUP BY p.id, p.code
PHP:
$db = new PDO('mysql:host=localhost;dbname=data2;charset=utf8', 'user2', 'Password');
foreach($db->query('SELECT p.id, p.code, SUM(wp.quantity) as quantity FROM products p JOIN warehouses_products wp ON wp.product_id = p.id GROUP BY p.id, p.code') as $row) {
echo $row["code"] . ' ' . $row["quantity"];
}
切记,我们所依赖的事实是产品表中的代码和ID是唯一的对。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.