2011-04-12 94 views
0

如何將這個查詢轉換爲使用cakePHP的方法find()使用find()方法的cakePHP查詢

查詢:

SELECT Ch.id, COUNT(DU.d_id) AS a, SUM(DU.d_id) AS b 
FROM c AS Ch 
LEFT JOIN du AS DU ON DU.c_id = Ch.id AND MONTH(DU.created) = MONTH(NOW()) 
LEFT JOIN d AS D ON DU.d_id = D.id 
GROUP BY Ch.id 

回答

1
$Ch->find(
    'all',  
    'fields' => array(
       'Ch.id','COUNT(DU.d_id) AS a', 'SUM(DU.d_id) AS b'), 
    'joins' => array(
         array(
          'table' => 'du', 
          'alias' => 'DU', 
          'type' => 'LEFT', 
          'conditions' => array('DU.c_id = Ch.id AND MONTH(DU.created) = MONTH(NOW()')), 
         array(
          'table' => 'd', 
          'alias' => 'D', 
          'type' => 'LEFT', 
          'conditions' => array('DU.c_id = Ch.id AND MONTH(DU.created) = MONTH(NOW()')), 
    'group' => 'Ch.id');   

我沒有測試過。更多關於Cake JOIN的信息:

http://book.cakephp.org/view/1018/find

相關問題