You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将含SELECT子句子查询的原生SQL转为CodeIgniter查询构建器脚本

转换后的CodeIgniter查询构建器代码

CodeIgniter 3 版本

// 构建子查询
$subquery = $this->db->select('(SUM(kredit) - SUM(debet))', FALSE)
                     ->from('kaskecil t2')
                     ->where('t2.idkas <= t.idkas')
                     ->get_compiled_select();

// 主查询
$query = $this->db->select('t.idkas, t.tglkas')
                  ->select("($subquery) AS total", FALSE)
                  ->from('kaskecil t')
                  ->get();

// 获取查询结果
$result = $query->result();
  • get_compiled_select() 用于生成子查询的原生SQL字符串
  • 第二个参数FALSE是告知CodeIgniter不要自动给字段/表达式添加反引号,避免破坏子查询结构

CodeIgniter 4 版本

// 构建子查询
$subquery = $this->db->subquery()
                     ->select('SUM(kredit) - SUM(debet)')
                     ->from('kaskecil t2')
                     ->where('t2.idkas <= t.idkas');

// 主查询
$query = $this->db->select('t.idkas, t.tglkas')
                  ->selectSub($subquery, 'total')
                  ->from('kaskecil t')
                  ->get();

// 获取查询结果
$result = $query->getResult();
  • CI4 提供了专门的subquery()和selectSub()方法处理子查询,写法更简洁规范,无需手动处理SQL字符串转义

内容的提问来源于stack exchange,提问作者karisma

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 16:07:49