Mysql 如何使用计数创建laravel多个联接并显示所有数据
在下面的代码中,我使用了多个表联接,我从表clients\u toup表中有多个id相同的行,而我需要从表中计算多个行,并显示其他两个表中的所有数据 在下面的代码中,我只得到了计算值,如何计算出来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
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吗