CakePHP&子选择

时间:2010-01-18 20:40:55

标签: cakephp subquery

我的应用程序需要在CakePHP中重新编码。

我通过子选择进行了以下选择:

        SELECT COUNT(*) AS item1,
            (SELECT COUNT(*) FROM portal_members) AS item3, 
            (SELECT COUNT(*) FROM portal_reviews) AS item3, 
            (SELECT COUNT(*) FROM portal_downloads) AS item4
        FROM portal_articles 
        WHERE 1 = 1

任何人都知道如何使用CakePHP find($ type,$ params)创建该查询?

3 个答案:

答案 0 :(得分:5)

如果这是您的确切查询,我建议您分四次通过。

$item1 = $this->PortalArticle->find('count');
$item2 = $this->PortalReview->find('count'); // etc..

运行可能需要更长时间,但您的意图更清晰,代码更清晰。

答案 1 :(得分:1)

请尝试此代码

$this->loadModel('PortalArticle');
$db = $this->PortalArticle->getDataSource();
$a = $db->fetchAll(
    ' SELECT COUNT(*) AS item1,
    (SELECT COUNT(*) FROM portal_members) AS item3, 
    (SELECT COUNT(*) FROM portal_reviews) AS item3, 
    (SELECT COUNT(*) FROM portal_downloads) AS item4
FROM portal_articles 
WHERE 1 = 1'
);

答案 2 :(得分:0)

CakePHP食谱包含一些子查询示例:

http://book.cakephp.org/view/74/Complex-Find-Conditions

相关问题