gpt4 book ai didi

php - 拉维尔 : highest id used in a column

转载 作者:行者123 更新时间:2023-11-30 22:15:32 24 4
gpt4 key购买 nike

我有一个表 gifts_sent,其中包含一个模型 GiftSent 并包含以下列。

id,gift_id,sender_id,receiver_id

注意:sender_idreceiver_id 是外键。

假设id为1的用户送了11件礼物,id为2的用户送了9件礼物,以此类推。

我如何使用 Laravel Eloquent 或查询构建器实现这一目标?

注:为排名,即哪个用户送的礼物最多。

我想出了以下逻辑,但它不正确。

App\User::join('gift_sents', function($builder){
$builder->on('gift_sents.receiver_id', '=', 'users.id');
})
->select('users.*', DB::raw('COUNT(gift_sents.receiver_id) as total_posts'))
->groupBy('gift_sents.id')
->orderBy('total_posts', 'ASC')
->limit(3)->get();

最佳答案

首先,您必须定义与 User 和 GiftSent 模型的关系。获取发送礼物次数最多的sender_id。使用关系('with')获取所有用户。

App\GiftSent::with('userRelationName')
->select('sender_id', DB::raw('COUNT(*) as giftCount'))
->groupBy('sender_id')
->orderBy(DB::raw('COUNT(*)'))
->get();

其他解决方案是使用 join,但它会很复杂且成本高。

关于php - 拉维尔 : highest id used in a column,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38419358/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com