首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Codeigniter子查询

Codeigniter子查询
EN

Stack Overflow用户
提问于 2013-10-10 08:43:22
回答 1查看 408关注 0票数 0

我正在寻找一些帮助,当FROM也是一个子查询时,我找到了一些但一无所获。

代码语言:javascript
复制
SELECT COUNT(*) 
  FROM 
    ( SELECT tc.*, 
             ( SELECT status FROM test_case_executions tce 
                   WHERE tce.test_case_id = tc.id 
                   ORDER BY tce.execution_date DESC, tce.id DESC LIMIT 1 
             ) AS last_status FROM test_cases tc 
    ) a 
WHERE a.last_status = '$status'

在CI中有没有一种方法可以直接使用它并执行它,或者有人可以帮助我以CI想要的方式编写它?谢谢

EN

回答 1

Stack Overflow用户

发布于 2013-10-10 16:20:36

你需要的一切都可以在上面的评论中找到here。只是为了让你开始,下面是你可以做的:

代码语言:javascript
复制
$this->db->query("
SELECT COUNT(*) AS amount
FROM (  SELECT tc.*,
        (   SELECT status
            FROM test_case_executions AS tce 
            WHERE tce.test_case_id = tc.id 
            ORDER BY tce.execution_date DESC, tce.id DESC
            LIMIT 1) AS last_status
        FROM test_cases AS tc 
    ) AS a 
WHERE a.last_status = ?
", array($status));

基本上,这就是评论所说的。使这种方式比简单的mysql_query等更“方便”的是,您可以转义传递的值,以摆脱错误和sql注入。注意最后一个部分?和第二个参数array($status)。我还设置了这个查询的样式,让它看起来更简单(imo)。

你可能会想“但是我想使用活动记录!D:",然而更高级的东西需要你离开舒适区。祝好运!

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19285204

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档