db->table('cd_master') ->select('cd_master.*, clients.client_name, clients.short_name, insurers.name AS insurer_name, user_profiles.first_name AS user_name, IFNULL(cd_ac_counts.cd_ac_no_count, 0) AS cd_ac_no_count, IFNULL(cd_ac_counts_for_cdt.cd_ac_no_count_cd_tranction, 0) AS cd_ac_no_count_cd_tranction') ->join('clients', 'clients.id = cd_master.client_id') ->join('insurers', 'insurers.id = cd_master.insurer_id') ->join('user_profiles', 'user_profiles.id = cd_master.created_by') ->join( '(SELECT cd_master.cd_ac_no, COUNT(client_policy.cd_ac_no) AS cd_ac_no_count FROM cd_master JOIN client_policy ON client_policy.cd_ac_no = cd_master.cd_ac_no GROUP BY cd_master.cd_ac_no) AS cd_ac_counts', 'cd_ac_counts.cd_ac_no = cd_master.cd_ac_no', 'left' ) ->join( '(SELECT cd_master.cd_ac_no, COUNT(cash_deposit.cd_ac_no) AS cd_ac_no_count_cd_tranction FROM cd_master JOIN cash_deposit ON cash_deposit.cd_ac_no = cd_master.cd_ac_no GROUP BY cd_master.cd_ac_no) AS cd_ac_counts_for_cdt', 'cd_ac_counts_for_cdt.cd_ac_no = cd_master.cd_ac_no', 'left' ) ->where('cd_master.is_active', 1) ->get(); $result = $query->getResultArray(); return $result; } }