CakePHP从子查询中选择(来自SELECT(...)的SELECT foo)

时间:2011-11-17 22:09:16

标签: cakephp subquery

我有一个使用子查询的CakePHP查询。虽然我找到了文档,告诉我如何在Cake中使用子查询条件,但我还没有找到一种方法将子查询用作表格。

换句话说,我试图表达这样的事情:

SELECT `Status`.`name`,
COUNT(*) as total_count,
COUNT(NULLIF(over_one_year, 0)) as over,
COUNT(NULLIF(over_one_year, 1)) as under
FROM (
    SELECT ((YEAR('##some date##') - YEAR(COALESCE(start_date, '1900-01-01'))) -
    (RIGHT(DATE('##some date##'), 5) < RIGHT(COALESCE(start_date, '1900-01-01'), 5)) 
     >= 1) as over_one_year,
     status_id FROM `users` WHERE `user_id` IN (##some list of ids##)) as User

LEFT JOIN `statuses` AS `Status` ON (`User`.`status_id` = `Status`.`id`)

GROUP BY id;

在蛋糕里。

有希望吗?

1 个答案:

答案 0 :(得分:1)

我认为这超出了cakephp的ORM功能,或者不值得花时间去了解它如何使用它。 你甚至可以使用$ this-&gt; Model-&gt; query()方法(http://book.cakephp.org/view/1027/query)或者至少它仍然是php,只需编写自己的类或函数来进行特殊查询。