2011-12-09 45 views
0

兩個領域我使用CakePHP查找查詢來獲取SUM()從兩個DIFF場兩個差異數據庫表:CakePHP的查找查詢SUM()從兩個不同的表

$total = $this->Model->find('all',array('fields' => 
array(
    'SUM(Model1.amount * Model2.purchase * Model3.rental * Model4.manu) as total'), 
    'group' => array('Model.trackby_id')) 
); 

我已經找到了相同的表sum()方法有用兩個差異字段,但它似乎不工作時,差異表中的兩個差異字段。

有人有這個解決方案嗎?

回答

3

你需要指定在字段中輸入您的SQL片段陣列中的的參數找到方法。

$total = $this->Model->find('all', array(
    'fields' => array(
    'SUM(Model.price + OtherModel.price) AS total' 
), 
    'group' => 'Model.id' 
)); 
+0

我試着用+和*等差異標誌,雖然它不適合我.. –

+0

@iamtheladylegend它絕對+。您應該也可以按照您的Model.id進行分組。 –

+0

@iamtheladylegend Cake會產生一個類似於以下的sql查詢:** SELECT SUM(Model.id + OtherModel.id)AS FROM'Model' LEFT JOIN' OtherModel' ON('Model'.'id' ='OtherModel')。 'model_id')GROUP BY Model.id' ** –