Mysql 如何使用计数创建laravel多个联接并显示所有数据

Mysql 如何使用计数创建laravel多个联接并显示所有数据,mysql,laravel,laravel-5,join,laravel-controller,Mysql,Laravel,Laravel 5,Join,Laravel Controller,在下面的代码中,我使用了多个表联接,我从表clients\u toup表中有多个id相同的行,而我需要从表中计算多个行,并显示其他两个表中的所有数据 在下面的代码中,我只得到了计算值,如何计算出来 foreach ($clients as $client) { $clientsLevelOne = DB::table('clients') ->leftjoin('clients_payment_type','clients_payment_t

在下面的代码中,我使用了多个表联接,我从表clients\u toup表中有多个id相同的行,而我需要从表中计算多个行,并显示其他两个表中的所有数据

在下面的代码中,我只得到了计算值,如何计算出来

foreach ($clients as $client) {
            $clientsLevelOne = DB::table('clients')
            ->leftjoin('clients_payment_type','clients_payment_type.user_id', '=', 'clients.id')
            ->leftjoin('clients_topup', 'clients_topup.user_id', '=', 'clients.id')
            ->select(DB::raw("SUM(topup_amount) as count"))
            ->where('clients.under_reference','=',$client->reference_id)->get();        

            $users[] = $clientsLevelOne;
          }

我想你应该这样做:

  $client_id_list =  [];
  foreach ($clients as $client) {
      $client_id_list[] => $client->id,
  }

 $clientsLevelOne = DB::table('clients')
            ->select(DB::raw("SUM({table_name}.topup_amount) as count"))
            ->leftjoin('clients_payment_type','clients_payment_type.user_id', '=', 'clients.id')
            ->leftjoin('clients_topup', 'clients_topup.user_id', '=', 'clients.id')
            ->where('clients.under_reference','=',$client->reference_id)
            ->whereIn('client_id', $client_id_list)
            ->groupBy('client_id')
            ->get();

不工作它只显示计数值而不是表中的所有其他列您必须在select()中添加要获取的列的名称。我要从clients表和clients\u payment\u type表中获取所有字段您可以添加一些示例@LuongPs吗