2011-12-09 43 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' ** –