![](/img/trans.png)
[英]one table data insert into different table with sum and group by in mysql and php
[英]php mysql sum amount of table2 and group by table one's field
我想從銷售表中總結金額,並希望按品牌分組,任何人都可以幫我正確查詢php mysql。
--- product ---
id pcode pname brand
1 123 Dalda 1
2 124 Habib 1
3 125 Sufi 2
4 126 Toyota 3
--- sale ---
id pcode pname amount
1 123 Dalda 1020
2 123 Dalda 1020
3 124 Habib 1030
4 124 Habib 1030
5 125 Sufi 1040
6 125 Sufi 1040
7 126 Toyota 1050
SELECT
p.pname,
IFNULL(SUM(amount), 0) AS TotalAmount
FROM product p
LEFT JOIN sale s ON p.pcode = s.pcode
GROUP BY p.pname;
這會給你:
| PNAME | TOTALAMOUNT |
------------------------
| Dalda | 2040 |
| Habib | 2060 |
| Sufi | 2080 |
| Toyota | 1050 |
請注意:無需將pname
存儲在第二個表Sale
。 刪除它,因為它已存儲在第一個表Product
。
select p.brand, sum(s.amount)
FROM product p
INNER JOIN sale s on s.pcode = p.pcode
GROUP BY p.brand
您將只獲得在銷售表中有條目的品牌。
如果您想要所有品牌,即使沒有進入銷售表,也可以使用LEFT JOIN
和
COALESCE(SUM(amount, 0))
順便說一句,正如Mahmoud Gamal所指出的,你不需要表Sale中的pname。 我也不會將pcode用作“關系列”,而是使用產品ID。 因此,您可以刪除pcode和pname,並使用新列p_id。
select pr.pcode,pr.pname,pr.brand,sum(s.amount)
from product pr
left join sale s
on pr.pcode=s.pcode
group by pr.pcode,pr.pname,pr.brand
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.