【发布时间】:2021-04-19 14:52:41
【问题描述】:
我有两张表,我想用计数进行一个查询。
我的第一个表名是 orders 字段:
| product_id | quantity |
|---|---|
| 1 | 1 |
| 2 | 1 |
| 1 | 2 |
| 1 | 1 |
| 2 | 1 |
我的第二张表是items 如下字段:
| id | product_id | price |
|---|---|---|
| 1 | 1 | 2.99 |
| 2 | 2 | 3.99 |
| 3 | 1 | 1.99 |
| 4 | 1 | 5.99 |
如您所见,产品 ID:1 有更多订单,但在商品表中产品 ID 1 有 3 个价格,我想获得具有更多订单且价格最低的 product_id。
我的查询如下
Items::->withCount(['orders' => function($q){
$q->active();
}])
->orderBy('orders_count', 'desc')
->groupBy('product_id')
->limit(1)->get();
我得到的商品订单更多,但第一个记录的价格为 2.99,但我想获得第三个记录的价格为 1.99(其相同的 product_id)
【问题讨论】: