laravel执行子查询查询并获取计数

时间:2015-10-10 19:15:32

标签: laravel select subquery

如何在Laravel中选择这样的查询 -

Select t.*, count(Select * from persons person 
where person.user_id = t.id) from users t

2 个答案:

答案 0 :(得分:1)

尝试:

DB::table('users')
  ->selectRaw('*, count(SELECT * FROM persons WHERE persons.user_id = users.id)')
  ->get();

答案 1 :(得分:-4)

在我看来,计算其他表的数据,你可以使用连接表与组合。它与您的查询相同。你可以这样做:

$users = DB::table('users')
            ->join('persons', 'users.id', '=', 'persons.user_id')
            ->select('users.*', count(persons.user_id))
            ->groupBy('persons.user_id')
            ->get();

我希望这可以帮到你。