首页 > 解决方案 > 以 laravel 查询或雄辩的方式获得所需结果的最佳方法

问题描述

我有以下架构:

数据库表的架构

在哪里可以看到

1 category = multiple amenities,
1 amenities = multiple amenity_values
1 amenity_values = multiple units_amenities_values
multiple units_amenities_values = 1 units

我的要求

需要查找是否有超过 1 个来自同一类别的便利设施属于同一单元,以及单元内是否有两个或多个来自同一类别的便利设施。我们需要创建一个包名称,例如:amenity1 - amenity2.

为了更清楚,我有以下数据。

类别

id |  category_name
1  |  CatA
2  |  CatB

便利设施

id  |  amenity_name  | category_id
1   | Am1A           |  1
2   | Am2A           |  1
3   | Am1B           |  2

amenity_values

id  | amenity_value  | amenity_id
1   |  10            | 1
2   |  15            | 1
3   |  20            | 2
4   |  30            | 3

units_amenities_values

id  | amenity_value_id  | unit_id
1   | 1                 | 1
2   | 2                 | 2
3   | 3                 | 1
4   | 4                 | 3

单位

id  | unit_number 
1   | 101
2   | 201
3   | 301

在此示例中,您可以看到 amenity:Am1A并且Am2A都属于同一类别CatA,并且它们都在 unit_number101所以,在这种情况下,我需要得到:

[
 [
  'unit_id'      => 1
  'category_id'   => 1
  'amenity_name' => 'Am1A - Am2A'
 ]
]

如果您需要任何详细信息,请告诉我。

标签: mysqllaravel

解决方案


推荐阅读