1

商品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 でグループ化することです。

どんな助けでも大歓迎です。

4

2 に答える 2

2

これを試して :

'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"];
于 2013-03-13T13:04:36.910 に答える
0

クエリ:

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"];
}

product テーブルの code と id が一意のペアであるという事実に依存していることに注意してください。

于 2013-03-13T13:06:16.450 に答える