【问题标题】:CodeIgniter fetch data from 2 tables and sumCodeIgniter 从 2 个表中获取数据并求和
【发布时间】:2016-09-13 23:04:16
【问题描述】:

我有两个数据库表 clientsbookings

客户表包含:

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

Bookings表包含

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

目前在 model 我有这个查询

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

然后controller设置$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 />";
}

它当前显示客户端列表(名称 - 参考)。

我想让 model 来查询这 2 个表,SUM booking_num 和 SUM 降序的订单记录。

【问题讨论】:

    标签: php mysql codeigniter


    【解决方案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 用于演示。

    【讨论】:

    • 这对我帮助很大。谢谢。
    猜你喜欢
    • 2017-11-16
    • 1970-01-01
    • 2020-08-06
    • 1970-01-01
    • 2019-10-08
    • 2020-10-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多