私は3つのテーブルを持っています:
sales
、店舗からの購入ですitems
、ストアが運ぶすべてのアイテムですsale_items
、その販売で購入したものに関連付けsales
られます。items
したがって、の行にはaと。のsale_items
両方があります。sale_id
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
これを行うための最良の方法は何ですか?