0

私は3つのテーブルを持っています:

  • sales、店舗からの購入です
  • items、ストアが運ぶすべてのアイテムです
  • sale_items、その販売で購入したものに関連付けsalesられます。itemsしたがって、の行にはaと。のsale_items両方があります。sale_iditem_id

与えられたものに対応するsalesものを含むすべてを見つけるための最も効率的な方法は何ですか?sale_itemitem

私の最初の推測は

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_itemsitemsalesales

これを行うための最良の方法は何ですか?

4

1 に答える 1

2

特定のアイテムを含む販売数を調べたいようです。

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