如何从Laravel中的另一个相关表中获取mysql列的最大值和最小值

时间:2018-02-19 21:08:27

标签: php mysql laravel

这是我的数据库表

  • 解释
  • 产品

每个请求都有一个产品,每个列表都有很多请求 现在我想得到列表X中产品的最小和最大价格/尺寸,我怎样才能通过Laravel Elequent实现这一目标?

列出表格

+----+----------+
| id | user_id  |
+====+==========+
| 1  | 1        |
+----+----------+
| 2  | 1        |
+----+----------+
| 3  | 2        |
+----+----------+

请求表

+----+-------------+----------+
| id | product_id  | list_id  |
+====+=============+==========+
| 1  | 1           | 1        |
+----+-------------+----------+
| 2  | 1           | 1        |
+----+-------------+----------+
| 3  | 2           | 2        |
+----+-------------+----------+

产品表

+----+-------+------+-------+
| id | price | size | other |
+====+=======+======+=======+
| 1  | 110   | 10   | test  |
+----+-------+------+-------+
| 2  | 130   | 12   | test  |
+----+-------+------+-------+
| 3  | 100   | 24   | test  |
+----+-------+------+-------+
| 4  | 200   | 16   | test  |
+----+-------+------+-------+

1 个答案:

答案 0 :(得分:0)

  

我想获得列表X中产品的最小和最大价格/尺寸

$maxSize = Product::whereHas('request.list', function($q) use($listId) {
    $q->where('list.id', $listId);
})
->max('size');

$minSize = Product::whereHas('request.list', function($q) use($listId) {
    $q->where('list.id', $listId);
})
->min('size');

以最低和最高价格执行相同操作。