mysql - 使用分组依据

mysql - Using Group By

我正在尝试为我正在为 android 开发的应用编写 mysql 查询。

我的数据库有一个 bill_content table 和一个 products table 我想 select 前 10 名最畅销的产品。

这是我所拥有的最小版本,但这是我在这里得到答案所需要的全部。

bill_content table 具有以下列:idid_productquantity(id_product 和此处的数量可以重复,因为这table较大,包含id_bill等信息)

products table 具有以下列:idname

SELECT products.name AS Product,
       bill_content.quantity AS Quantity

FROM bill_content, products
WHERE bill_content.id = products.id
ORDER BY bill_content.quantity DESC
LIMIT 10

当然这个 returns 2 行的 table 包含 bill_content table 中的所有产品及其数量,但是有重复项,我需要将它们的数量相加并将它们显示为一行。

提前谢谢你。

已回答 正如 Gordon Linoff 所说,这可以使用 GROUP BY 来完成。

你想要一个 group by。您还应该学习使用正确的显式 join 语法:

SELECT p.name AS Product,
       SUM(bc.quantity) AS Quantity
FROM bill_content bc JOIN
     products p
     ON bc.id = p.id
GROUP BY p.name
ORDER BY SUM(bc.quantity) DESC
LIMIT 10;