【发布时间】:2021-08-27 09:58:19
【问题描述】:
如果我的代理可以具有许多属性,反之亦然,在联结表中定义,我将如何查询顶级代理(与其他两个代理具有至少两个共同属性的代理。)
agent
| id |
|---|
| 1 |
| 2 |
| 3 |
| 4 |
| 5 |
properties
| id |
|---|
| 1 |
| 2 |
| 3 |
| 4 |
| 5 |
| 6 |
agent_properties
| agent_id | property_id |
|---|---|
| 1 | 1 |
| 1 | 2 |
| 1 | 3 |
| 2 | 2 |
| 2 | 3 |
| 3 | 1 |
| 3 | 3 |
| 3 | 5 |
| 4 | 3 |
| 4 | 4 |
| 4 | 6 |
| 5 | 1 |
| 5 | 2 |
| 5 | 5 |
| 6 | 4 |
| 6 | 6 |
Example:
Agent 1 (propr1, propr2, propr3),
Agent 2 (propr2, propr3),
Agent 3 (propr1, propr3, propr5)
Agent 4 (propr3, propr4, propr6)
Agent 5 (propr1, propr2, propr5)
Agent 6 (propr4, propr6)
所以查询应该返回代理 1、代理 3、代理 5
如果有人可以展示如何使用 Laravel Eloquent 做到这一点,那就太好了。
【问题讨论】:
-
您能否提供样本数据模板、预期结果以及您尝试了什么?您可以使用:sqlfiddle.com/#!9
-
你有多少房产?如果您的属性少于 32 个,这可能是一个解决方案。