Php Laravel:列中使用的最高id
我有一个表Php Laravel:列中使用的最高id,php,mysql,laravel,laravel-5,eloquent,Php,Mysql,Laravel,Laravel 5,Eloquent,我有一个表gifts\u sent,其中有一个模型GiftSent,并有以下列 id,gift\u id,sender\u id,receiver\u id 注意:sender\u id和receiver\u id是外键 假设id1的用户为其他用户发送了11份礼物,id2的用户为其他用户发送了9份礼物,依此类推 我如何使用laravel eloquent或query builder实现这一点 注:排名是指哪位用户送出的礼物最多 我提出了以下逻辑,但它不正确 App\User::join('gif
gifts\u sent
,其中有一个模型GiftSent
,并有以下列
id
,gift\u id
,sender\u id
,receiver\u id
注意:sender\u id
和receiver\u id
是外键
假设id1
的用户为其他用户发送了11份礼物,id2
的用户为其他用户发送了9份礼物,依此类推
我如何使用laravel eloquent或query builder实现这一点
注:排名是指哪位用户送出的礼物最多
我提出了以下逻辑,但它不正确
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();
首先,您必须定义与用户和礼品模型的关系。 获取发送最多数量礼物的发件人id。使用关系('with')获取所有用户
另一个解决方案是使用join,但这将是复杂和昂贵的。首先,您必须定义与用户和礼品模型的关系。 获取发送最多数量礼物的发件人id。使用关系('with')获取所有用户
另一种解决方案是使用join,但它将非常复杂和昂贵。查询本身可以是
选择发送者id,SUM(*),由发送者id顺序从my_表组按sent DESC LIMIT 1发送,但这不会考虑关系。查询本身可以是选择发送者id,SUM(*)由发件人从my_table组发送\u id订单由sent DESC LIMIT 1发送
-虽然这不包括领带。谢谢,伙计,但您的查询有错误!请看一看谢谢,但是你的查询有错误!请看一看
App\GiftSent::with('userRelationName')
->select('sender_id', DB::raw('COUNT(*) as giftCount'))
->groupBy('sender_id')
->orderBy(DB::raw('COUNT(*)'))
->get();