mysql - 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
我想获得“卖家最多的产品”。它的查询是什么?我使用多个连接,所以我没有找到答案。
解决方案
假设表中没有重复项,请尝试以下操作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
推荐阅读
- javascript - 表单提交输入未运行我的 onClick 功能
- prometheus - Spring boot 2.3.4 - Kafka 指标在 /actuator/prometheus 中不可见
- python - 从维基百科页面的类别中获取更一般的类别
- python - 如何在两个向量之间生成一个随机向量?
- javascript - XMPP - 如何删除两个 jid 之间的所有消息,但仅限于一个用户?
- c# - 从移动设备将提货单推送到结账终端
- node.js - 如何在 NodeJS 中对 MySQL 数据库进行异步调用
- javascript - TypeError:req.body.forEach 不是函数
- c# - 开始x数量的线程
- flutter - Flutter:NoSuchMethodError 仅在 Android 上