我有下一个示例表:
+===========================+
| person_id | preference_id |
+===========+===============+
| 1 | 1 |
| 1 | 2 |
| 1 | 3 |
| 2 | 1 |
| 3 | 4 |
| 4 | 1 |
| 4 | 3 |
| 5 | 2 |
| 5 | 8 |
+___________+_______________+
我想获得 person_id 1 的前 10 个集合交集(是的,示例仅包括 5 人)。我的意思是:(1,2,3) ∩ (1) ∩ (4) ∩ (1,3) ∩ (2,8)
对于 person_id 2,我们有四个“person_id 1”的三个交集:(1) 对于 person_id 4:(1,3) 对于 person_id 5:(2)
//person_id 3: no set that contains in person_id 1
而且……我们不知道 person_id 2、3、4、5 等。 person_id 和 preference_id 包括超过 10000 行。如您所见,我想要: - 在 mysql 中搜索交叉点的快速清洁方式 - 获取前 10 个交叉点(person_id 4 在假设位置数时最相关。然后是 2 和 5)谢谢您的关注。