次のようなデータを含むテーブルがあります。
+---------+---------+
| user_id | item_id |
+---------+---------+
| 125 | 375 |
| 125 | 2 |
| 125 | 12 |
| 125 | 375 |
| 283 | 2 |
| 283 | 11 |
| 118 | 375 |
| 118 | 12 |
+---------+---------+
そして、要求されたすべてのアイテムを持つすべてのユーザーを返すクエリを作成しようとしています。この場合、要求されたアイテムは次のとおりです。
item_id IN (375, 12)
したがって、これは結果になるはずです。
+---------+
| user_id |
+---------+
| 125 |
| 118 |
+---------+
テーブルをそれ自体に結合することを除いて、私はこれをどのように達成するのか本当にわかりません。私が考えたアイデアの1つは、それをグループ化することでした。user_id, item_id
それから、カウントを入れるかもしれませんが、それは2枚組レコードをuser_id: 125, item_id: 375
2としてカウントし、user_id 125の合計カウントを3にすると、戻るなどの独自の問題があります。同じアイテムを2回持っているユーザーと、私が本当に必要としているもの、つまり、要求されたアイテムの両方を持っているユーザー。