ユーザーがアイテムを推奨できるニュース システムがあります。しかし、誰かがアイテムを表示しているときに、そのアイテムが表示されていることを推奨した人が推奨した他のアイテムのリストを表示したいと考えています。「この商品をすすめたユーザーもすすめた…」みたいな。
レコメンデーション テーブル
+----+------+---------+
| id | user | item |
+----+------+---------+
| 1 | 1 | 1 | User 1 recommended item 1
+----+------+---------+
| 2 | 1 | 2 |
+----+------+---------+
| 3 | 2 | 2 |
+----+------+---------+
| 4 | 3 | 3 |
+----+------+---------+
| 5 | 2 | 3 |
+----+------+---------+
品目表
+----+---------+---------+
| id | title | author |
+----+---------+---------+
| 1 |Hello... | me |
+----+---------+---------+
| 2 | Bye... | you |
+----+---------+---------+
| 3 | Hi... | me |
+----+---------+---------+
ID 1 のユーザーが示すように、推奨アイテム 1 と 2、およびユーザー 2 も推奨アイテム 2、推奨アイテム 3 も表示されます。したがって、誰かがアイテム 2 を見ているときは、アイテム 3 がリストに表示されるはずです。アイテム 3 を見ている場合、アイテム 2 のリストが表示されます。
SQL クエリの実行方法がわかりません。最初に、閲覧中の記事を推奨したすべてのユーザーの ID を取得し、その後、選択したユーザー ID の中で最も繰り返し使用されているアイテムの ID を確認する必要があると思います。
そして、それらのアイテムの ID を使用して、アイテムのタイトルまたは著者情報を取得します。
しかし、より最適化された方法で SQL クエリを作成する方法がわかりません。どうぞよろしくお願いいたします。