我想对销售表中的金额求和并按品牌进行分组,谁能帮助我对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.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。