我正在寻找一些帮助,当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想要的方式编写它?谢谢
发布于 2013-10-10 16:20:36
你需要的一切都可以在上面的评论中找到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等更“方便”的是,您可以转义传递的值,以摆脱错误和sql注入。注意最后一个部分?和第二个参数array($status)。我还设置了这个查询的样式,让它看起来更简单(imo)。
你可能会想“但是我想使用活动记录!D:",然而更高级的东西需要你离开舒适区。祝好运!
https://stackoverflow.com/questions/19285204
复制相似问题