【问题标题】:Convert Sql query to sql CodeIgniter将 Sql 查询转换为 sql CodeIgniter
【发布时间】:2020-04-17 16:50:29
【问题描述】:

将 sql 查询转换为 sql codeigniter 我试过用这个方法 How to convert sql query to codeigniter active records 但不为我工作...... 所以我试着在这里发帖

这是我的 sql 查询

  $sql = "SELECT b.id, b.us_id, b.kredit, b.info,u.us_name, 
                 u.us_username, u.us_email, u.us_phone, b.cnt, b.amnt 
          FROM users u JOIN
              (SELECT id, us_id, kredit, info, COUNT(info) cnt, SUM(kredit) amnt 
               FROM balance_history 
               GROUP BY info HAVING cnt > 1
              ) AS b 
              ON u.us_id = b.us_id 
          WHERE b.kredit != '0' AND 
                b.info NOT LIKE '[PERBAIKAN]%' AND 
               (b.info LIKE 'Transfer saldo%' OR b.info LIKE 'Ket%') 
          ORDER BY b.id ASC";

谢谢之前...

【问题讨论】:

    标签: mysql sql codeigniter


    【解决方案1】:

    如果你没有全局加载数据库,你可以通过调用$this->load->database();来加载它,下面的查询可能会提供相同的db调用。

    $this->db->select('id, us_id, kredit, info, COUNT(info) cnt, SUM(kredit) amnt')
            ->from('balance_history')
            ->group_by('info')
            ->having('cnt > 1');
    
            $subquery = $this->db->get_compiled_select();
            $query  =   $this->db
                        ->select('b.id, b.us_id, b.kredit, b.info,u.us_name,u.us_username, u.us_email, u.us_phone, b.cnt, b.amnt')
                        ->from('users u')
                        ->join('('.$subquery.') b','u.us_id = b.us_id')
                        ->where('b.kredit !=','0', true)
                        ->not_like('b.info', '[PERBAIKAN]', 'after', false, true)
                        ->where('(b.info LIKE "Transfer saldo%" OR b.info LIKE "Ket%")')
                        ->get();
    

    【讨论】:

    • 您可以使用以下命令检查创建的查询的输出:echo $this->db->last_query();
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-24
    • 2021-09-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-05
    相关资源
    最近更新 更多