我有两个数据库表 客户 和 预订
客户 表包含:
[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)。
我想让 模型 查询这两个表,SUM booking_num 并按SUM降序排序记录。
答案 0 :(得分:1)
您必须使用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();
Click here用于演示。