0

当 FROM 也是一个子查询时,正在寻找一些帮助,但没有找到一些帮助。

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想要的方式编写它?谢谢

4

1 回答 1

1

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

$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等更“CI 方便”的原因是您正在转义传递的值以使自己免于错误和 sql 注入。注意最后一部分?和第二个参数array($status)。我还将这个查询的样式设置为更容易看(imo)。

你可能会想“但我想使用 Active Records!D:”,但是更高级的东西需要你离开舒适区。祝你好运!

于 2013-10-10T08:20:36.123 回答