我有一个新闻系统,用户可以在其中推荐该项目。但是现在我希望当有人正在查看一个项目时,显示一个由推荐该项目的人推荐的其他项目的列表。诸如“推荐此项目的用户也推荐了...”之类的内容
推荐表
+----+------+---------+
| 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 查询。感谢您的支持。