【问题标题】:Codeigniter Model: summary, join, group by in multiple tableCodeigniter 模型:在多个表中汇总、连接、分组
【发布时间】:2017-07-18 08:43:12
【问题描述】:

我正在使用 Codeigniter,我想按 id_user 汇总总数量和分组:

表 1:用户表

用户 ID |姓名 | ------ | ------ | 1 |约翰 | 2 |弗兰克 | 3 |杰西 | 4 |帕特里克 | 5 |露西 |

表 2:sales_table

销售ID |用户 ID |数量 | ------ | ------ | ----- | 1 | 1 | 23 | 2 | 1 | 11 | 3 | 2 | 10 | 4 | 4 | 8 | 5 | 3 | 14 | 6 | 5 | 15 | 7 | 3 | 7 |

结果:

没有 |姓名 |总数量 | ------ | ------ | --------- | 1 |约翰 | 34 | 2 |弗兰克 | 10 | 4 |帕特里克| 8 | 5 |杰西 | 21 | 6 |露西 | 15 |

如何在我的模型和控制器中使用 CodeIgniter 实现此结果? 有人请帮帮我吗?

【问题讨论】:

  • 到目前为止你尝试过什么?
  • 问题可能属于sql家族而不是php。

标签: php mysql codeigniter frameworks


【解决方案1】:

使用这个:

$sql="SELECT ut.user_ID as No, SUM(st.qty) as total_qty , ut.name FROM sales_table st INNER JOIN user_table ut ON ut.user_ID = st.user_ID";
$query  = $this->db->query($sql);
$result = $query->result();
print_r($result);

$this->db->select('ut.user_ID as No, SUM(st.qty) as total_qty , ut.name');
$this->db->from('sales_table st');
$this->db->join('ser_table ut', 'ut.user_ID = st.user_ID');
$query  = $this->db->get();
$result = $query->result();
print_r($result);

【讨论】:

    【解决方案2】:

    答案如下(但你的意思不是提供你尝试过的东西,而不是期望人们为你做:o))

    SELECT ut.`name`,SUM(st.qty) as `total_qty`
    FROM user_table ut
    LEFT JOIN sales_table st USING (user_ID)
    GROUP BY ut.user_ID
    

    这是在 Codeigniter 中的样子:

    $db = $this->db;
    
    $db->select('ut.name,SUM(st.qty) as total_qty');
    $db->join('sales_table st','user_ID','left');
    $db->group_by('ut.user_ID');
    
    $data = $db->get('user_table ut')->result_array();
    

    【讨论】:

      【解决方案3】:
      SELECT name, sum(qty) as total_qty FROM sales_table 
      LEFT JOIN user_table ON user_table.user_ID = sales_table.user_ID
      GROUP BY sales_table.user_ID
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-03-27
        • 1970-01-01
        • 1970-01-01
        • 2023-01-12
        • 1970-01-01
        • 1970-01-01
        • 2014-10-07
        • 2015-08-18
        相关资源
        最近更新 更多