【问题标题】:How to get max and min of mysql column from another related table in Laravel如何从 Laravel 中的另一个相关表中获取 mysql 列的最大值和最小值
【发布时间】:2018-07-30 03:52:52
【问题描述】:

这是我的数据库表

  • 列表
  • 请求
  • 产品

每个请求都有一个产品,每个列表都有很多请求 现在我想获取列表 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  |
+----+-------+------+-------+

【问题讨论】:

  • 您是否尝试过首先在 MySQL 中作为查询执行此操作,并且您可以发布到目前为止您尝试过的内容吗?我首先建议您在 MySQL 中执行此操作。从中制定一个有说服力的查询更容易。

标签: php mysql laravel


【解决方案1】:

我想获取列表 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');

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

【讨论】:

  • 还有其他方法可以使用 Lists 或 Requests 模型获得相同的结果吗?
猜你喜欢
  • 1970-01-01
  • 2020-09-22
  • 2014-06-15
  • 1970-01-01
  • 1970-01-01
  • 2021-12-04
  • 2020-03-08
  • 1970-01-01
  • 2016-04-14
相关资源
最近更新 更多