正在寻找帮助,但从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希望的方式编写它?谢谢
最佳答案
如上面的注释中所述,可以真正找到您需要的所有内容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));
基本上,这就是评论所要表达的。比起简单的
mysql_query
等,使之更“ CI方便”的是,您正在转义传递的值以使自己摆脱错误和sql注入。请注意最后一部分?
和第二个参数array($status)
。我还设置了此查询的样式,使它看起来更简单(imo)。您可能会想“但是我想使用Active Records!D:”,但是更高级的内容要求您离开舒适区域。祝好运!