【发布时间】:2016-02-12 11:15:35
【问题描述】:
我有 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等...关系?然后您可以加载您需要的数据而无需任何查询。如果您还没有,请阅读以下内容:laravel.com/docs/5.1/eloquent -
@Latheesan 是的,添加了 Eloquent 模型,但是。请仔细阅读任务。 Laravel 不支持我需要的功能。或者如果有,请在回答中告诉我
-
需要一个“相似”的定义..你想要一个特定城市的所有项目的所有属性吗?
-
@Arth 请参阅示例。是的,它将是具有至少一个相等属性的项目列表
标签: php mysql list laravel group-by