首页 > 解决方案 > SQL JOIN, GROUP BY 在多个表上获得 TOP

问题描述

我继承了以下数据库设计。表格是:

product
---------
product_id  
product_name
price
amountOfStock (pk)

component
--------
component_id  
component_name
category
amountOfStock (fk)
seller_no (pk)

seller
---------------
seller_no (fk)
seller_name 
seller_address
seller_phone

我想获得“卖家最多的产品”。它的查询是什么?我使用多个连接,所以我没有找到答案。

标签: mysqlsqljoin

解决方案


假设表中没有重复项,请尝试以下操作seller。如果有重复然后做count(distinct seller_no)

select
  product_id,
  product_name,
  count(seller_no) as total_sellers
from product p
join component c
on p.amountOfStock = c.amountOfStock

join seller s
on c.seller_no = s.seller_no

group by
  product_id,
  product_name

order by
  total_sellers desc

limit 1

推荐阅读