CodeIgniter从2个表中提取数据并求和


CodeIgniter fetch data from 2 tables and sum

我有两个数据库表客户预订

客户端 表包含:

[client_ref] [client_name]
 2378       | My Client
 8746       | Other Client

预订表格包含

[booking_client] [booking_num]
 2378           | 1
 2378           | 5
 8746           | 3

当前在模型中,我有此查询

function clients()
{
    $query = $this->db
        ->select('*')
        ->order_by('client_name', 'ASC')
        ->get('clients');
    return $query->result();
}

然后控制器设置$data

$data['clients'] = $this->home_model->clients();
$this->load->view('pages/clients', $data);

并且在视图

foreach ($clients as $client)
{
echo $client->client_name . " - " .$client->client_ref . "<br />";
}

它当前显示客户端列表(name-ref(。

我想制作模型来查询这两个表,SUMbooking_num并按SUM降序排序记录。

您必须使用group-by和sum SQL函数,如下所示

$this->db->select('clients.client_ref, clients.client_name, sum(bookings.booking_num) as sum_booking_num');
$this->db->from('clients');
$this->db->join('bookings', 'bookings.booking_client = clients.client_ref', 'right');
$this->db->group_by('clients.client_ref');
$this->db->order_by('sum_booking_num', 'desc');
$clients = $this->db->get()->result_object();

单击此处进行演示。