的名单上有4个表:如何获得类似项目
项目
+----+------+---------+-----+
| id | name | city_id | ... |
+----+------+---------+-----+
属性
+----+------+-----+
| id | name | ... |
+----+------+-----+
item_attribute
+----+---------+--------------+
| id | item_id | attribute_id |
+----+---------+--------------+
城市
+----+------+-----+
| id | name | ... |
+----+------+-----+
项目和属性具有多对多的关系。
项目只位于一个城市一个一对多
问:
我使用PHP(Laravel)。我如何才能在一个城市中获得具有相似属性的项目列表(带有限制)?属性列表永远不会等于2个项目。
是否可以使用MySQL查询?
例子:
| ItemName | Attributes | City |
+----------+-----------------------+------+
| Alpha | one, two, three, four | NY |
| Beta | five, six, seven | NY |
| Gamma | one, three, seven | NY |
| Delta | one, six, eight | CA |
| Epsilon | two, three, four | NY |
| Zeta | ten, nine | NY |
我想选择类似物品Alpha
,他们将是:Gamma
,Epsilon
因为它们具有相似的属性。
Delta
将不会被选中,因为它位于另一个城市。
您能否请您显示您的数据和您想要的结果数据。这将很容易查找您的要求。 –
如果您使用的是Laravel,是否为这些实体创建了Eloquent模型并定义了它们各自的'hasOne','belongsTo','hasMany'等...关系?然后你可以加载你需要的数据而不需要任何查询。如果你还没有,请阅读以下内容:https://laravel.com/docs/5.1/eloquent – Latheesan
@用户示例添加 – MurDaD