我有以下查询:
$queryResult = $this->Hit->query(
"select P, count(S) as S
from
(
select pattern_id as P, srn as S from hits
where job_id=".$id." and srn != ''
group by srn, pattern_id
order by pattern_id, srn
) as T
group by P
order by P;"
);
所以基本上我有一个select .. from (select .. ) ...
声明。
我在使用MySQL时工作得很好。但我必须将数据库迁移到PostgreSQL,所以我想将其更改为Cake-way。所以我的问题是,如何在 CakePHP 中解释这种类型的查询(select from select
)?
提前致谢。
答案 0 :(得分:3)
我不确定你在CakePHP中解释这个查询是什么意思,因为你的代码是有效的CakePHP。
话虽如此,我会将您的查询重写为:
SELECT pattern_id as P, COUNT(DISTINCT srn) as S
FROM hits
WHERE job_id=".$id." and srn != ''
GROUP BY pattern_id
ORDER BY pattern_id;
(我相信这是等效的 - 你可以加载sqlfiddle.com以获取更好的测试样本数据)
如果这样做并且你有一个Hits模型,那么你可以使用find方法重新编写查询。