正在寻找一些帮助,并找到一些但没有什么,因为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想要的方式编写它吗?谢谢
答案 0 :(得分:1)
如上面评论中所述,您可以找到所需的一切here。只是为了让你开始,这是你可以做到的:
$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));
基本上这是评论所说的。是什么让这个“CI方便”比简单mysql_query
等更让你逃避传递的值,让你自己摆脱错误和sql注入。请注意最后一部分?
和第二个参数array($status)
。我还认为这个查询在眼睛上更容易(imo)。
您可能会想“但我想使用Active Records!D:”,但是更高级的东西要求您离开舒适区。祝你好运!