gpt4 book ai didi

php - 使用 join codeigniter 进行求和查询

转载 作者:行者123 更新时间:2023-11-29 09:41:53 25 4
gpt4 key购买 nike

我有两张 table 。一个包含客户列表,另一个包含数据列表。我正在尝试在我的 View 中创建一个表,其中列出了客户名称以及数据表中列(job_total)的总和。我能够编写一个在大多数情况下都能正常工作的查询。问题是,如果我尚未在数据表中创建记录,我仍然需要在 View 中的表上显示余额为零的客户名称。需要一些关于如何处理这个问题的指导。我想我需要查询我的客户列表并循环该查询,只是不知道该怎么做。

我希望我的 View 如下所示:

    +-------------+---------+    | Client Name | Balance |    +-------------+---------+    | xxx         | $75.00  |    | xxx         | $100.00 |    | xxx         | $0.00   |    +-------------+---------+    

Here is a rough layout of the two tables in my database:

    cj_clients    +----+-------------+    | id | client name |    +----+-------------+    | 1  | client1     |    | 2  | client2     |    | x  | xxx         |    +----+-------------+    
    cj_data    +----+-----------+-----------+    | id | client_id | job_total |    +----+-----------+-----------+    |  1 |         1 |      5.00 |    |  2 |         1 |     10.00 |    |  3 |         1 |     15.00 |    +----+-----------+-----------+    

The below code returns the desired results except when no entries have yet been made to the cj_data table. Not sure how to still get the client in the table view with a balance of $0.

$this->db->select('client_name,client_id, sum(job_total) AS balance')
->from('cj_data')
->join('cj_clients','cj_data.client_id = cj_clients.id')
->group_by('client_name');

return $this->db->get()->result();

最佳答案

您需要提供左连接

$this->db->select('client_name,client_id, IFNULL(sum(job_total),0) AS balance')
->from('cj_data')
->join('cj_clients','cj_data.client_id = cj_clients.id',"left") // here
->group_by('client_name');

return $this->db->get()->result();

如果未找到记录,我编写了 IFNULL 条件,否则它将显示 cj_clients 中所有客户端的所有数据

Note: the Default behaviour of CodeIgniter is it will add inner join if join not specified

关于php - 使用 join codeigniter 进行求和查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56443382/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com