0

我有三张桌子:

  • sales,这是从商店购买的
  • items,这是商店携带的所有物品
  • sale_items,与该销售sales中的items购买相关联。所以一行 insale_items有 asale_id和 a item_id

sales找到所有包含sale_item与给定对应的所有内容的最有效方法是item什么?

我的第一个猜测是

select sale_id, item_id, count(*)
from sales as s
join sale_items as si on si.sale_id=s.id
group by item_id
order by count(*) desc

但是,如果一个给定的sale有多个sale_items相同的item,那就sale被计算多次。那不是我想要的——我只想数sales自己。

做这个的最好方式是什么?

4

1 回答 1

2

听起来您想查找包含特定商品的销售数量:

SELECT count(distinct(sale_id)) FROM sale_items
WHERE item_id='<your_item_id>'
于 2012-04-21T23:07:12.980 回答