我有三张桌子:
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
自己。
做这个的最好方式是什么?