我有三张桌子:
sales,这是从商店购买的items,这是商店携带的所有物品sale_items,与该销售sales中的items购买相关联。所以一行 insale_items有 asale_id和 aitem_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自己。
做这个的最好方式是什么?