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

10-02 15:22