【发布时间】:2015-10-08 17:12:33
【问题描述】:
我正在尝试选择一些列以及 MAX。原始查询类似于:SELECT users.id, ..., MAX(ur.rank) AS rank 但我无法弄清楚如何使用 Laravel 在 Eloquent 中提供的查询构建器来完成它。
这是我的尝试:
$user = User::join('users_ranks AS ur', function($join) {
$join ->on('ur.uid', '=', 'users.id');
})
->where('users.id', '=', 7)
->groupBy('users.id')
->first(['users.id', 'users.username', 'MAX(ur.rank) AS rank']);
我根本想不通。我想要实现的是我正在选择 users.id = 7 的用户,并且我想选择 users_ranks 中的 MAX 等级,他们的 users_ranks.uid = users.id。
有人告诉我要避免子查询,因为在处理大型结果集时,它会显着减慢速度。
谁能指出我正确的方向?谢谢。
【问题讨论】:
-
查询生成器是否允许您创建类似于
SELECT MAX(rank) FROM users_ranks WHERE uid = 7的内容?只做两个查询?
标签: php mysql laravel eloquent