将 SQL 查询转换为 Eloquent Laravel
Convert SQL query to Eloquent Laravel
我有一个 sql 查询:
select `id` from `users`
where (
select count(*)
from `user_event` as `uev`
where `uev`.`leader_id` = `users`.`id`
) > 1
如何将其转换为 Eloquent Laravel?
假设您已经建立关系,您可以为此使用 has()
方法:
$users = User::select('id')->has('events', '>', 1)->get();
如果您想要一组用户 ID(因为您只选择了 ID),您还可以使用 lists()
:
$ids = User::has('events', '>', 1)->lists('id');
既然你问了,这将是一个替代方法(虽然没有测试)
User::where(DB::raw('1'), '<', function($q){
$q->from('user_event')
->where('user_event.leader_id', 'users.id');
})->get();
我有一个 sql 查询:
select `id` from `users`
where (
select count(*)
from `user_event` as `uev`
where `uev`.`leader_id` = `users`.`id`
) > 1
如何将其转换为 Eloquent Laravel?
假设您已经建立关系,您可以为此使用 has()
方法:
$users = User::select('id')->has('events', '>', 1)->get();
如果您想要一组用户 ID(因为您只选择了 ID),您还可以使用 lists()
:
$ids = User::has('events', '>', 1)->lists('id');
既然你问了,这将是一个替代方法(虽然没有测试)
User::where(DB::raw('1'), '<', function($q){
$q->from('user_event')
->where('user_event.leader_id', 'users.id');
})->get();